Merge heads.
authorPat Downey <patd@symbian.org>
Thu, 24 Jun 2010 13:52:58 +0100
changeset 43 2fee514510e5
parent 42 c4c0b2d3d4ad (diff)
parent 1 a4d95d2c2540 (current diff)
Merge heads.
startupservices/SplashScreen/group/bld.inf
startupservices/SplashScreen/group/sf_splashscreen.mmp
startupservices/SplashScreen/sfimage/sfsplash.svg
startupservices/SplashScreen/src/SplashScreen.cpp
--- a/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/ServiceRegistry/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apfile/apfmimecontentpolicy.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apfile/apfmimecontentpolicy.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -18,18 +18,53 @@
 // INCLUDE FILES
 #include <apfmimecontentpolicy.h>
 #include <f32file.h> // RFs
-#include <barsread.h>
-#include <barsc.h> 
-#include <apfmimecontentpolicy.rsg>
 #include <caf/content.h>
 #include <e32base.h>
 #include <apgcli.h>    // For RApaLsSession 
+#include <centralrepository.h>
+#include <apmstd.h>
 
-// Resource file name.
-_LIT(KCEResourceFile, "z:\\resource\\apps\\apfmimecontentpolicy.rsc"); 
 
-// This is needed for resource reading.
-const TInt KCCMask(0x00000fff);
+/* Closed content and extension information is stored in central repository with UID 0x10003A3F.
+ * Keys of the Closed Content and Extension information repository is divided into two parts.
+ * Most significant byte is used for identifying the type,i.e. whether it is Mimetype or extension, 
+ * and the least significant 3 bytes are used for uniquely identifying the entry within that type. 
+ * 
+ * |-------------------- Key (32-bits) ---------------------|
+ *  --------------------------------------------------------
+ * | type (8-bits)  |            sequence number(24-bits)   |
+ *  --------------------------------------------------------
+ * 
+ *  The type part is used for differentiating Content type and extension keys.
+ *  The value can be 
+ *     0x0 - For content type key
+ *     0x1 - For extension key
+ *     
+ * Sequence number part is used to uniquely identifying the entry within that type. 
+ *  
+ *  Examples: 
+ *  
+ *  0x00000000 - Content type key with sequence number 0x0
+ *  0x00000001 - Content type key with sequence number 0x1
+ *  0x01000000 - Extension type key with sequence number 0x0
+ *  0x01000001 - Extension type key with sequence number 0x1
+ *  0x01000002 - Extension type key with sequence number 0x2
+ */
+
+
+
+//Partial key for finding MIME type keys in the repository
+const TUint32 KClosedContentTypePartialKey=0x0;
+
+//Partial key for finding extension type keys in the repository
+const TUint32 KClosedExtensionTypePartialKey=0x01000000;
+
+//Mask for finding the type (MIME or extension)of a key
+const TUint32 KClosedTypeKeyMask=0xFF000000;
+
+
+//Closed content and extension information repository UID
+const TUid KClosedContentAndExtensionInfoRepositoryUID={0x10003A3F};
 
 
 NONSHARABLE_CLASS(CApfMimeContentPolicyImpl) : public CBase
@@ -52,8 +87,9 @@
 	void ConstructL();
     void ConstructL(RFs& aFs);
 	TBool IsClosedFileL(RFile& aFileHandle, const TDesC& aFileName) const;
-	void ReadResourcesL(RFs& aFs);
-
+	void ReadResourcesL();
+	TBool IsValidExtension(TDesC& extension);	
+    TBool IsValidMimeType(TDesC& extension);
 private:
 	CDesCArrayFlat* iCcl;	// Closed content list.
 	CDesCArrayFlat* iExtList;	// Closed extensions list.
@@ -249,7 +285,7 @@
 	iFsConnected = ETrue;
 	
 	User::LeaveIfError(iFs.ShareProtected());
-	ReadResourcesL(iFs);
+	ReadResourcesL();
 	}
 	
 /**
@@ -260,7 +296,7 @@
 	{
 	iFsConnected = EFalse;
 	iFs = aFs;	
-	ReadResourcesL(iFs);
+	ReadResourcesL();
 	}
 
 /**
@@ -490,31 +526,56 @@
 Called by constructor.
 @param aFs A handle to a shared file server session. 
 */
-void CApfMimeContentPolicyImpl::ReadResourcesL(RFs& aFs)
+void CApfMimeContentPolicyImpl::ReadResourcesL()
 	{
-	TResourceReader reader;	
+    ASSERT(!iCcl);
+    ASSERT(!iExtList);
+    
+	CRepository *cenrep=CRepository::NewL(KClosedContentAndExtensionInfoRepositoryUID);	
+	CleanupStack::PushL(cenrep);
+	
+	RArray<TUint32> keyArray;
+	CleanupClosePushL(keyArray);
+	
+    TBuf<KMaxDataTypeLength> keyData;
+    //Find the extenstion type keys in the repository 
+	cenrep->FindL(KClosedExtensionTypePartialKey, KClosedTypeKeyMask, keyArray);
+	int keyCount=keyArray.Count();
 
-	// Resource reading is done without coe & eikon env.
-	RResourceFile rsFile;
-	rsFile.OpenL(aFs, KCEResourceFile);
-	CleanupClosePushL(rsFile);
+	iExtList=new (ELeave) CDesCArrayFlat(keyCount);
 
-	// Read closed content list.
-	// Remove offset from id
-    HBufC8* rBuffer = rsFile.AllocReadLC(R_COMMONENG_CLOSED_CONTENT_LIST & KCCMask);
-	reader.SetBuffer(rBuffer);
-	ASSERT(!iCcl);
-	iCcl = reader.ReadDesCArrayL();
-	CleanupStack::PopAndDestroy(rBuffer); // rBuffer
-
-	// Read closed extensions list.
-	// Remove offset from id
-    rBuffer = rsFile.AllocReadLC(R_COMMONENG_CLOSED_EXTENSIONS_LIST & KCCMask); 
-	reader.SetBuffer(rBuffer);
-	ASSERT(!iExtList);
-	iExtList = reader.ReadDesCArrayL();
-	CleanupStack::PopAndDestroy(2); // rBuffer, rsFile 
-	    
+	TInt valid;
+	TInt index;
+	//Get each extension type key value and store in iExtList array
+	for(index=0; index<keyCount; index++)
+	    {
+	    cenrep->Get(keyArray[index], keyData);
+        //Check validity of the extension. If its invalid it will not be added to list.	    
+	    valid=IsValidExtension(keyData);
+	    if(valid)
+	        iExtList->AppendL(keyData);
+	    }
+	
+	keyArray.Reset();
+	
+    //Find the content type keys in the repository 	
+    cenrep->FindL(KClosedContentTypePartialKey, KClosedTypeKeyMask, keyArray);
+    keyCount=keyArray.Count();
+    
+    iCcl=new (ELeave) CDesCArrayFlat(keyCount);
+    
+    //Get each content type key value and store in iCcl array
+    for(index=0; index<keyCount; index++)
+        {
+        cenrep->Get(keyArray[index], keyData);  
+        //Check validity of the mime type. If its invalid it will not be added to list.
+        valid=IsValidMimeType(keyData);
+        if(valid)        
+            iCcl->AppendL(keyData);
+        }
+    
+    CleanupStack::PopAndDestroy(2, cenrep);
+	
     // Sort lists to enable binary find
     iCcl->Sort();
     iExtList->Sort();
@@ -524,3 +585,55 @@
 	User::LeaveIfError(iLs.Connect());
 	}
 
+
+//Checks the given extension is valid or invalid. The extension should start with a ".".
+TBool CApfMimeContentPolicyImpl::IsValidExtension(TDesC& extension)
+    {
+     TChar dot='.';
+     //Check whether extension should start with "."
+     return(extension.Locate(dot)==0);
+    }
+
+//Checks the given mime type is valid or not.
+//The mime type will be in the following format type/subtype. Ex: "application/vnd.oma.drm.message"
+//Mime type should posses the following properties. Otherewise those are considered as invalid.
+//1. Only one front slash should exist. That should be followed by the type field.
+//2. There should not be any backslashes.
+
+TBool CApfMimeContentPolicyImpl::IsValidMimeType(TDesC& mimeType)
+    {
+    TChar backslash='\\';            
+    TChar forwardslash='/';
+    
+    //Check any backslash is used
+    TBool found=mimeType.Locate(backslash);
+    if(found!=KErrNotFound)
+        return(EFalse);
+
+    //Locate forward slash position
+    found=mimeType.Locate(forwardslash);
+    
+    //There should be at least one forward slash
+    if(found==KErrNotFound)
+        {
+        return EFalse;
+        }
+    else
+        {
+        //Forward slash position should not at first or last position of the mime type
+        if(found==0||(found==mimeType.Length()-1))
+            return EFalse;
+        
+        //There should not be more than one forward slash
+        found=mimeType.Mid(found+1).Locate(forwardslash);
+        if(found!=KErrNotFound)
+            {
+            return(EFalse);       
+            }
+        else
+            {
+            //MIME format is valid
+            return(ETrue);
+            }
+        }
+    }
--- a/appfw/apparchitecture/apfile/apfmimecontentpolicy.rss	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-NAME CCLS
-
-#include <uikon.rh>
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf=""; }
-
-//----------------------------------------------------
-//    r_commoneng_closed_content_list
-//	  Contains all MIME types in closed content list.	    
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_commoneng_closed_content_list
-    {
-    items=
-        {	
-        LBUF { txt="application/vnd.oma.drm.message"; },
-		LBUF { txt="application/vnd.oma.drm.rights+xml"; },
-		LBUF { txt="application/vnd.oma.drm.rights+wbxml"; },
-		LBUF { txt="application/vnd.nokia.ringing-tone"; },
-		LBUF { txt="audio/amr-wb"; },
-		LBUF { txt="audio/sp-midi"; },
-		LBUF { txt="image/vnd.nok.3Dscreensaver"; },
-		LBUF { txt="image/vnd.nok-wallpaper"; },
-		LBUF { txt="image/vnd.nok-oplogo"; },
-		LBUF { txt="image/vnd.nok-oplogo-color"; },
-		LBUF { txt="application/java"; },
-		LBUF { txt="application/java-archive"; },
-		LBUF { txt="application/x-java-archive"; },
-		LBUF { txt="text/vnd.sun.j2me.app-descriptor"; },
-		LBUF { txt="application/x-NokiaGameData"; },
-		LBUF { txt="application/vnd.symbian.install"; },
-		LBUF { txt="x-epoc/x-sisx-app"; }  
-        };
-    }
-
-//----------------------------------------------------
-//    r_commoneng_closed_extensions_list
-//	  List of closed file extensions.	
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_commoneng_closed_extensions_list
-    {
-    items=
-        {
-		LBUF { txt=".dm"; },
-		LBUF { txt=".dr"; },
-		LBUF { txt=".drc"; },
-		LBUF { txt=".ott"; },
-		LBUF { txt=".awb"; },
-		LBUF { txt=".mid"; },
-		LBUF { txt=".c3d"; },
-		LBUF { txt=".jar"; },
-		LBUF { txt=".ngd"; },
-		LBUF { txt=".sis"; },
-		LBUF { txt=".sisx"; }
-        };
-    }
-
-
-// End of file
--- a/appfw/apparchitecture/apfile/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apgrfx/APGCLI.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apgrfx/APGCLI.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -17,6 +17,10 @@
 #include "../apserv/APSCLSV.H"
 #include "../apserv/apsserv.h"
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include "../apgrfx/apgcommonutils.h"
+#endif
+
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #if !defined(__APA_INTERNAL_H__)
 #include "apainternal.h"
@@ -1547,25 +1551,41 @@
 /** @publishedPartner */
 EXPORT_C void RApaLsSession::RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServRegisterNonNativeApplicationType, TIpcArgs(aApplicationType.iUid, &aNativeExecutable)));
+#else
+	(void)aApplicationType; //to make compiler happy
+	(void)aNativeExecutable; 
+    User::Leave(KErrNotSupported);	
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 
 /** @publishedPartner */
 EXPORT_C void RApaLsSession::DeregisterNonNativeApplicationTypeL(TUid aApplicationType)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServDeregisterNonNativeApplicationType, TIpcArgs(aApplicationType.iUid)));
+#else
+	(void)aApplicationType;	//to make compiler happy
+    User::Leave(KErrNotSupported); 
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 	
 /** @publishedPartner */
 EXPORT_C void RApaLsSession::PrepareNonNativeApplicationsUpdatesL()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	TIpcArgs ipcArgs(0, 0, 0, 0);
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServPrepareNonNativeApplicationsUpdates, ipcArgs));
+#else
+    User::Leave(KErrNotSupported);
+#endif
 	} //lint !e1762 Suppress member function could be made const
 
 /** @publishedPartner */
 EXPORT_C void RApaLsSession::RegisterNonNativeApplicationL(TUid aApplicationType, const TDriveUnit& aDrive, CApaRegistrationResourceFileWriter& aRegistrationResourceFile, CApaLocalisableResourceFileWriter* aLocalisableResourceFile, const RFile* aIconFile)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK      
 	TIpcArgs ipcArgs(0, 0, 0, 0);
 	RBuf8 ipcParameter0;
 	CleanupClosePushL(ipcParameter0);
@@ -1616,12 +1636,26 @@
 
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServRegisterNonNativeApplication, ipcArgs));
 	CleanupStack::PopAndDestroy(2, &ipcParameter0);
+#else
+	(void) aApplicationType; //to make compiler happy
+	(void) aDrive;
+	(void) aRegistrationResourceFile;
+	(void) aRegistrationResourceFile;
+	(void) aLocalisableResourceFile;
+	(void) aIconFile;	
+    User::Leave(KErrNotSupported);  
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 
 /** @publishedPartner */
 EXPORT_C void RApaLsSession::DeregisterNonNativeApplicationL(TUid aApplication)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServDeregisterNonNativeApplication, TIpcArgs(aApplication.iUid)));
+#else
+	(void) aApplication;
+    User::Leave(KErrNotSupported);  	
+#endif
 	} //lint !e1762 Suppress member function could be made const
 	
 /**
@@ -1635,8 +1669,12 @@
 
 EXPORT_C void RApaLsSession::CommitNonNativeApplicationsUpdatesL()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK      
 	TIpcArgs ipcArgs(EFalse, 0, 0, 0);
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServCommitNonNativeApplications, ipcArgs));
+#else
+    User::Leave(KErrNotSupported);
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 	
 
@@ -1653,8 +1691,12 @@
 
 EXPORT_C void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK      
 	TIpcArgs ipcArgs(ETrue, 0, 0, 0);
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServCommitNonNativeApplications, ipcArgs));
+#else
+    User::Leave(KErrNotSupported);  	
+#endif
 	}
 
 /** 
@@ -1668,8 +1710,12 @@
 */
 EXPORT_C TInt RApaLsSession::RollbackNonNativeApplicationsUpdates()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK      
 	TIpcArgs ipcArgs(0, 0, 0, 0);
 	return SendReceiveWithReconnect(EAppListServRollbackNonNativeApplications, ipcArgs);
+#else
+    return KErrNotSupported;    
+#endif
 	} //lint !e1762 Suppress member function could be made const
 
 /**
@@ -1724,6 +1770,7 @@
 */
 EXPORT_C TInt RApaLsSession::ForceRegistration(const RPointerArray<TDesC>& aRegFiles)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK     
 	CBufFlat* buffer = 0;
 	TRAPD(err, buffer = CreateRegFilesBufferL(aRegFiles));
 	if (err)
@@ -1733,6 +1780,10 @@
 	const TInt returnValue=SendReceiveWithReconnect(EAppListServForceRegistration,TIpcArgs(&ptr));
 	delete buffer;
 	return returnValue;
+#else
+	(void) aRegFiles;
+    return KErrNotSupported;	
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 	
 	
@@ -1840,7 +1891,7 @@
 	SendReceive(ECancelNotifyOnDataMappingChange,TIpcArgs());
 	} //lint !e1762 Suppress member function could be made const
 
-
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
 CBufFlat* RApaLsSession::CreateRegFilesBufferL(const RPointerArray<TDesC>& aRegFiles)
 	{
 	// Serialize the array
@@ -1873,3 +1924,211 @@
 	CleanupStack::Pop(buffer);
 	return buffer;
 	}
+#endif
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+/* This function is only for use by Installers.
+
+Installers can provide the information about installed, uninstaleld and upgraded applications using this function.
+The function takes list of TApaAppUpdateInfo objects. TApaAppUpdateInfo object contains the application uid and
+corresponding action done on that application like installed, uninstalled and upgraded.
+
+Apparc updates the application list based on the information provided in the list. 
+
+UpdateAppListL initiates applist update. It will not wait till the applist update completed.
+
+@param aAppUpdateInfo List of TApaAppUpdateInfo objects, which contains application uid and corresponding action information 
+					  like installed, uninstalled and changed.
+@return A standard error code.
+@publishedAll
+@released
+*/
+
+EXPORT_C TInt RApaLsSession::UpdateAppListL(RArray<TApaAppUpdateInfo>& aAppUpdateInfo)
+    {
+    //Create a buffer with the application UID and corresponding action information.
+    CBufFlat* buffer = 0;
+    TRAPD(err, buffer = CreateAppUpdateInfoBufferL(aAppUpdateInfo));
+    if (err)
+        return err;
+    
+    TPtr8 ptr = buffer->Ptr(0);
+    const TInt returnValue=SendReceiveWithReconnect(EAppListServUpdateAppList,TIpcArgs(&ptr));
+    delete buffer;
+    return returnValue;
+    }
+
+
+/**
+This function is only for use by Software Install.
+
+ForceRegistration allows Software Install to provide a list of application information that need to be 
+included in apparc's application list even if they have not been marked as installed in the SISRegistry. 
+The force registered applications will be removed from application list once Software Install notifies
+the end of the installation by calling UpdateApplist.
+
+
+@param aAppsData The list of application information needs to be added to application list. Apparc don't take the 
+				 ownership of this array.
+@return A standard error code.
+@publishedAll
+@released
+*/
+
+EXPORT_C TInt RApaLsSession::ForceRegistration(const RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo)
+{
+    //If there are no applications to update, just return.
+    if(aForceRegAppsInfo.Count()==0)
+        return(KErrNone);
+    
+    //Create a buffer with the application uid and corresponding action information.
+    CBufFlat* buffer = 0;
+    TRAPD(err, buffer = CreateForceRegAppInfoBufferL(aForceRegAppsInfo));
+    if (err)
+        return err;
+    
+    TPtr8 ptr = buffer->Ptr(0);
+    const TInt returnValue=SendReceiveWithReconnect(EAppListServForceRegistration,TIpcArgs(&ptr));
+    delete buffer;
+    return returnValue;
+}
+
+
+/*
+ * Creates a buffer for applications uids and action information. 
+ */
+CBufFlat* RApaLsSession::CreateAppUpdateInfoBufferL(RArray<TApaAppUpdateInfo>& aAppUpdateInfo)
+    {
+    TInt count=aAppUpdateInfo.Count();
+    TInt requiredBufferSize=sizeof(TInt32)+(count*sizeof(TApaAppUpdateInfo)); //Size of count + size of TApaAppUpdateInfo objects
+
+    CBufFlat* const buffer = CBufFlat::NewL(requiredBufferSize);
+    CleanupStack::PushL(buffer);
+    buffer->ExpandL(0,requiredBufferSize);
+    RBufWriteStream writeStream;
+    writeStream.Open(*buffer);
+    CleanupClosePushL(writeStream);
+    
+	//Write number of TApaAppUpdateInfo objects to stream.
+    writeStream.WriteUint32L(count);
+
+    for(TInt index=0;index<count;index++)
+        {
+		//Write one application information at a time
+        writeStream<<aAppUpdateInfo[index];
+        }
+
+    writeStream.CommitL();
+    CleanupStack::PopAndDestroy(&writeStream);
+    CleanupStack::Pop(buffer);
+    
+    return buffer;
+    }
+	
+
+/* Creates buffer for force registered application information array*/
+
+CBufFlat* RApaLsSession::CreateForceRegAppInfoBufferL(const RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo)
+    {
+    TInt count=aForceRegAppsInfo.Count();
+    TInt requiredBufferSize=sizeof(TInt32); //For count
+    
+    for(TInt index=0; index<count; index++)
+        {
+        //Get each application information size and add it to required size.
+        requiredBufferSize += GetObjectSizeL(aForceRegAppsInfo[index]);
+        }
+
+    CBufFlat* const buffer = CBufFlat::NewL(requiredBufferSize);
+    CleanupStack::PushL(buffer);
+    buffer->ExpandL(0,requiredBufferSize);
+    
+    RBufWriteStream writeStream;
+    writeStream.Open(*buffer);
+    CleanupClosePushL(writeStream);
+    
+    //Write count to stream.
+    writeStream.WriteUint32L(count);
+
+    for(TInt index=0;index<count;index++)
+        {
+        //Write one applciation information at a time to stream.
+        writeStream<<*aForceRegAppsInfo[index];
+        }
+
+    writeStream.CommitL();
+    CleanupStack::PopAndDestroy(&writeStream);
+    CleanupStack::Pop(buffer);
+    
+    return buffer;    
+    }
+
+
+
+/* 
+Provides updated application information after apparc notifies application list change. It provides list of TApaAppUpdateInfo
+objects which contains the information about updated application UID and the action, i.e installed, uninstalled and changed.
+
+The function returns empty list if the application list is changed due to initial application list creation or because of phone 
+language change. During that time the list of changed applications can be large.
+
+This function should be called only after the client receives the applist notification from AppArc registered through SetNotify(). Otherwise the 
+return values are unpredictable.
+
+@param aUpdatedAppsInfo On return, provides the list of TApaAppUpdateInfo objects, which contains changed application uids and 
+                        corresponding action information like installed, uninstalled and changed. If this list is empty, then 
+                        the applist is updated because of initial applist creation or because of phone language change. In that 
+                        case use GetAllApps and GetNextApp APIs to retrieve the complete applist information.
+                           
+@return A standard error code.
+@publishedAll
+@released
+*/
+
+EXPORT_C TInt RApaLsSession::UpdatedAppsInfoL(RArray<TApaAppUpdateInfo>& aUpdatedAppsInfo)
+    {
+    const TInt KDefaultUpdateAppEntries=10;
+  
+    //Create a buffer with default size
+    TInt sizeRequired=(KDefaultUpdateAppEntries * sizeof(TApaAppUpdateInfo)) + 2;
+    CBufFlat* buffer=CBufFlat::NewL(sizeRequired);
+    CleanupStack::PushL(buffer);
+    buffer->ExpandL(0, sizeRequired);
+    TPtr8 ptr = buffer->Ptr(0); 
+
+    TPckgBuf<TInt> pckg(sizeRequired);
+    
+    //pass the buffer and size of the buffer.
+    TInt returnValue=SendReceiveWithReconnect(EAppListUpdatedAppsInfo,TIpcArgs(&ptr, &pckg));
+    
+    //If the size of the buffer is not enough expand it to required size and pass it again.
+    if(returnValue==KErrOverflow)
+        {
+        buffer->ExpandL(0, sizeRequired);
+        returnValue=SendReceiveWithReconnect(EAppListUpdatedAppsInfo,TIpcArgs(&ptr, &pckg));
+        }
+    
+    if(returnValue==KErrNone)
+        {
+        RBufReadStream readStream;
+        readStream.Open(*buffer);
+        
+        //Read count from the stream
+        TInt count=readStream.ReadUint32L();
+    
+        //Read updated applications information and add it to array 
+        for(TInt index=0; index<count; index++)
+            {
+            TApaAppUpdateInfo appUpdateInfo;
+            readStream>>appUpdateInfo;
+            aUpdatedAppsInfo.AppendL(appUpdateInfo);
+            }
+        }
+    
+    CleanupStack::PopAndDestroy(buffer);
+    return returnValue;
+    }
+
+#endif
+    
--- a/appfw/apparchitecture/apgrfx/APGWGNAM.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apgrfx/APGWGNAM.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -9,6 +9,7 @@
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
+// NTT DOCOMO, INC. -- Fix CApaWindowGroupName::AppUid() cannot handle UID with 0 prefix
 //
 // Description:
 //
@@ -513,7 +514,7 @@
 		{
 		start++;
 		TInt end=FindDelimiter(EEndUid);
-		if ((end-start) == KUidBufLength)
+		if (0<end && (end-start)<=KUidBufLength)
 			{
 			TBuf<KUidBufLength> uidBuf=iBuf->Mid(start, end-start);
 			TLex lex(uidBuf);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/apgrfx/apgcommonutils.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,96 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __APGCOMMONUTILS_H__
+#define __APGCOMMONUTILS_H__
+
+#include <e32base.h>
+#include <s32strm.h>
+#include <s32buf.h>
+#include<usif/scr/appregentries.h>
+
+
+/**
+Implementation of the MStreamBuf interface that throws away all
+data written to it but keeps track of how many bytes have been
+written to it.  It does not support reading.
+*/
+class TNullBuf : public MStreamBuf
+    {
+public:
+    inline TNullBuf();
+    inline TUint BytesWritten();
+private:
+    inline virtual void DoWriteL(const TAny* aPtr,TInt aLength);
+private:
+    TUint iBytesWritten;
+    };
+
+/**
+A write stream that throws away all its input, but keeps track of how many
+bytes have been written to it.  It is used for determining the amount of
+memory needed to store externalised objects.
+*/
+class RNullWriteStream : public RWriteStream
+    {
+public:
+    inline RNullWriteStream();
+    inline TUint BytesWritten();
+private:
+    TNullBuf iSink;
+    };
+
+inline TNullBuf::TNullBuf() : iBytesWritten(0) 
+    {
+    }
+
+inline TUint TNullBuf::BytesWritten() 
+    {
+    return iBytesWritten;
+    }
+
+inline void TNullBuf::DoWriteL(const TAny*,TInt aLength)
+    {
+    iBytesWritten += aLength;
+    }
+
+inline RNullWriteStream::RNullWriteStream()
+    {
+    Attach(&iSink);
+    }
+
+inline TUint RNullWriteStream::BytesWritten()
+    {
+    return iSink.BytesWritten();
+    }
+
+template <class T>
+TInt GetObjectSizeL(T* aObject)
+    {
+    TInt size(0);
+    if(aObject)
+        {
+        RNullWriteStream nullstream;
+        CleanupClosePushL(nullstream);
+        nullstream << *aObject;
+        nullstream.CommitL();
+        size = nullstream.BytesWritten();
+        CleanupStack::PopAndDestroy(&nullstream);
+        return size;
+        }
+    return -1;
+    }
+
+#endif //__APGCOMMONUTILS_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/apgrfx/apgupdate.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apgupdate.cpp
+//
+
+#include "apgupdate.h"
+
+/**
+ * Default Constructor.
+ */
+EXPORT_C TApaAppUpdateInfo::TApaAppUpdateInfo()
+    {
+    
+    }
+
+/**
+ * Constructor for TApaAppUpdateInfo.
+ * @param aAppUid Application UID.
+ * @param aAction Action performed by installer on the application.
+ */
+EXPORT_C TApaAppUpdateInfo::TApaAppUpdateInfo(TUid aAppUid, TApaAppUpdateInfo::TApaAppAction aAction):
+        iAppUid(aAppUid),
+        iAction(aAction)
+    {
+    
+    }
+
+EXPORT_C void TApaAppUpdateInfo::InternalizeL(RReadStream& aReadStream) 
+    {
+        iAppUid.iUid=aReadStream.ReadInt32L();
+        iAction=TApaAppAction(aReadStream.ReadInt32L());
+    }
+
+EXPORT_C void TApaAppUpdateInfo::ExternalizeL(RWriteStream& aWriteStream) const
+        {
+        aWriteStream.WriteInt32L(iAppUid.iUid);
+        aWriteStream.WriteInt32L(iAction);
+        }
+
--- a/appfw/apparchitecture/apgrfx/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/aplist/aplappinforeader.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplappinforeader.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -28,6 +28,8 @@
 #include "../apgrfx/APGSTD.H"			// EPanicNullPointer
 #include "../apgrfx/apsecutils.h"		// CApaSecurityUtils
 
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 const TUint KResourceOffsetMask = 0xFFFFF000;
 
 _LIT(KAppBinaryPathAndExtension, "\\sys\\bin\\.exe");
@@ -35,6 +37,9 @@
 
 // The 2nd UID that defines a resource file as being an application registration resource file.
 const TUid KUidAppRegistrationFile = {0x101F8021};
+#endif
+
+
 
 //
 // Local functions
@@ -42,14 +47,16 @@
 
 extern void CleanupServiceArray(TAny* aServiceArray);	// Implemented in AplAppList.cpp
 
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 // ApaUtils
 
 TBool ApaUtils::TypeUidIsForRegistrationFile(const TUidType& aUidType)
-	{ // static
-	return (aUidType[1].iUid==KUidAppRegistrationFile.iUid ||
-		   aUidType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile);
-	}
-
+    { // static
+    return (aUidType[1].iUid==KUidAppRegistrationFile.iUid ||
+           aUidType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile);
+    }
+#endif
 
 //
 // CApaAppInfoReader
@@ -63,29 +70,6 @@
 // instead of having to copy the object (copying could be expensive for the methods
 // of this class that need to return arrays).
 
-
-CApaAppInfoReader* CApaAppInfoReader::NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid)
-	{
-	CApaAppInfoReader* self = new(ELeave) CApaAppInfoReader(aFs, aRegistrationFileName, aAppUid);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppInfoReader::CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid) :
-	iFs(aFs),
-	iAppUid(aAppUid),
-	iTimeStamp(0),
-	iDefaultScreenNumber(0),
-	iNonMbmIconFile(EFalse),
-	iLocalisableResourceFileTimeStamp(0),
-	iApplicationLanguage(ELangNone),
-	iIndexOfFirstOpenService(KErrNotFound),
-	iRegistrationFileName(aRegistrationFileName)
-	{
-	}
-
 void CApaAppInfoReader::ConstructL()
 	{
 	iIconLoader = CApaIconLoader::NewL(iFs);
@@ -103,7 +87,9 @@
 	delete iViewDataArray;
 	delete iOwnedFileArray;
 	delete iIconFileName;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	delete iLocalisableResourceFileName;
+#endif
 	
 	if (iServiceArray)
  		{
@@ -127,16 +113,6 @@
 	return iAppBinaryUidType;
 	}
 
-TTime CApaAppInfoReader::TimeStamp() const
-	{
-	return iTimeStamp;
-	}
-
-TTime CApaAppInfoReader::IconFileTimeStamp() const
-     {
-     return iIconFileTimeStamp;
-     }
-
 void CApaAppInfoReader::Capability(TDes8& aCapabilityBuf) const
 	{
 	TApaAppCapabilityBuf buf(iCapability);
@@ -200,18 +176,7 @@
 	return iNonMbmIconFile;
 	}
 
-HBufC* CApaAppInfoReader::LocalisableResourceFileName()
-	{
-	HBufC* localisableResourceFileName = iLocalisableResourceFileName;
-	iLocalisableResourceFileName = NULL; // ownership transferred to caller
-	return localisableResourceFileName;
-	}
 
-TTime CApaAppInfoReader::LocalisableResourceFileTimeStamp() const
-	{
-	return iLocalisableResourceFileTimeStamp;
-	}
-	
 TLanguage CApaAppInfoReader::AppLanguage() const
 	{
 	return iApplicationLanguage;
@@ -239,6 +204,518 @@
 	return iconLoader;
 	}
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+CApaAppInfoReader::CApaAppInfoReader(RFs& aFs, const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScr) :
+    iFs(aFs),
+    iDefaultScreenNumber(0),
+    iNonMbmIconFile(EFalse),
+    iApplicationLanguage(ELangNone),
+    iIndexOfFirstOpenService(KErrNotFound),
+    iAppInfo(aAppInfo),
+    iScr(aScr)
+    {
+    }
+
+CApaAppInfoReader* CApaAppInfoReader::NewL(RFs& aFs, const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScr)
+    {
+    CApaAppInfoReader* self = new(ELeave) CApaAppInfoReader(aFs, aAppInfo, aScr);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+/*
+ * Reads the application information from SCR. 
+ */
+TBool CApaAppInfoReader::ReadL()
+    {
+    ReadAppRegistrationInfoL();
+    ReadLocalisationInfoL();  
+#ifdef _DEBUG    
+    DisplayAppInfo();
+#endif
+    return ETrue;
+    }
+
+#ifdef _DEBUG
+void CApaAppInfoReader::DisplayAppInfo()
+    { 
+    RDebug::Print(_L("[Apparc] Application UID: %X"), iAppUid.iUid);
+    if(iAppBinaryFullName)
+        RDebug::Print(_L("[Apparc] AppBinary Name: %S"), iAppBinaryFullName);
+    
+    RDebug::Print(_L("[Apparc] Embeddability: %d"), iCapability.iEmbeddability);
+    RDebug::Print(_L("[Apparc] Hidden: %d"), iCapability.iAppIsHidden);
+    RDebug::Print(_L("[Apparc] NewFile: %d"), iCapability.iSupportsNewFile);
+    RDebug::Print(_L("[Apparc] Launch in Foreground: %d"), iCapability.iLaunchInBackground);
+    RDebug::Print(_L("[Apparc] Attributes: %X"), iCapability.iAttributes);
+    RDebug::Print(_L("[Apparc] Group Name: %S"), &iCapability.iGroupName);
+    
+    RDebug::Print(_L("[Apparc] Default Screen Number: %d"), iDefaultScreenNumber);
+    RDebug::Print(_L("[Apparc] Application Language: %d"), iApplicationLanguage);
+    
+    if(iCaption)
+        RDebug::Print(_L("[Apparc] Short Cpation: %S"), iCaption); 
+		
+    if(iShortCaption)
+        RDebug::Print(_L("[Apparc] Caption: %S"), iShortCaption);
+    
+    if(iServiceArray)
+        {
+        for(TInt index=0;index<iServiceArray->Count();index++)
+            {
+            TApaAppServiceInfo serviceInfo=(*iServiceArray)[index];
+            RDebug::Print(_L("[Apparc] Service Uid: %X"), serviceInfo.Uid().iUid);
+            
+            for(TInt j=0;j<serviceInfo.DataTypes().Count();j++)
+            {
+            TDataTypeWithPriority dataType=(serviceInfo.DataTypes())[j];
+            RDebug::Print(_L("[Apparc] Data Type: %s   Priority:%d"), &dataType.iDataType, dataType.iPriority);
+            }
+            
+            }
+        }
+    
+    if(iIconFileName)
+        {
+        RDebug::Print(_L("[Apparc] Icon File: %S"), iIconFileName);   
+        
+        if(iNonMbmIconFile)
+            RDebug::Print(_L("[Apparc] Its Non MBM icon file"));
+        RDebug::Print(_L("[Apparc] Num Icons: %d"), iNumOfAppIcons);
+        }
+
+    if(iViewDataArray)
+        {
+        for(TInt index=0; index<iViewDataArray->Count();index++)
+            {
+            CApaAppViewData* view= (*iViewDataArray)[index];
+            RDebug::Print(_L("[Apparc] ViewID: %X"), view->Uid().iUid);
+            //RDebug::Print(_L("[Apparc] View Caption: %s"), view->Caption());
+            //RDebug::Print(_L("[Apparc] View Icon File: %s"), view->IconFileName());   
+            if(view->NonMbmIconFile())
+                RDebug::Print(_L("[Apparc] Its Non MBM icon file"));
+            RDebug::Print(_L("[Apparc] Screen Mode: %d"), view->ScreenMode());
+            }
+        }
+    }
+
+#endif
+
+
+void CApaAppInfoReader::ReadAppRegistrationInfoL()
+    {
+    //Get 3rd UID of the application
+    iAppUid=iAppInfo.AppUid();
+    
+    iCapability.iAttributes=iAppInfo.Attributes();
+    TUid firstUid(KExecutableImageUid);
+    TUid middleUid(KUidApp);
+
+    //If the application is non-native, first UID should be Null UID and second uid is the non-native application type(i.e type ID of java, widget etc.). 
+    if (iCapability.iAttributes & TApaAppCapability::ENonNative)
+        {
+            firstUid=KNullUid;
+            middleUid.iUid=iAppInfo.TypeId();
+        }
+    else if (iCapability.iAttributes & TApaAppCapability::EBuiltAsDll)
+        {
+        User::Leave(KErrNotSupported); // legacy dll-style app
+        }
+    
+    iAppBinaryUidType=TUidType(firstUid, middleUid, iAppUid);
+   
+    //If executable file name is not given then just leave. 
+    if(iAppInfo.AppFile().Length() ==0 )
+        User::Leave(KErrGeneral);
+
+    //Absolute path of the executable file is stored in iAppBinaryFullName
+    iAppBinaryFullName=iAppInfo.AppFile().AllocL();
+    
+//    //Check whether the binary exists.
+    /*RLibrary::TInfoBuf infoBuf;
+    TInt ret = RLibrary::GetInfo(*iAppBinaryFullName, infoBuf);
+    User::LeaveIfError(ret);
+    
+    if(infoBuf().iUids[2]!=iAppUid && iAppBinaryUidType[1]==KUidApp)
+        User::Leave(KErrNotFound);*/
+    
+    iCapability.iAppIsHidden=iAppInfo.Hidden();
+    iCapability.iEmbeddability = static_cast<TApaAppCapability::TEmbeddability>(iAppInfo.Embeddability());
+    iCapability.iLaunchInBackground=iAppInfo.Launch();
+    iCapability.iSupportsNewFile=iAppInfo.NewFile();
+    
+    iDefaultScreenNumber=iAppInfo.DefaultScreenNumber();
+    
+    iCapability.iGroupName=iAppInfo.GroupName();
+    
+    RPointerArray<Usif::COpaqueData> appOpaqueData=iAppInfo.AppOpaqueData();
+    ASSERT(!(appOpaqueData.Count()>1));
+    
+    if(appOpaqueData.Count()>0)
+        {
+        iOpaqueData=appOpaqueData[0]->OpaqueData().AllocL();
+        }
+    else
+        {
+        //If opaque data is not available, create an empty object and assign to iOpaqueData
+        iOpaqueData=HBufC8::NewL(0);
+        }  
+    
+    ReadServiceInfoL(iAppInfo.ServiceArray()); 
+    ReadOwnedFilesInfoL(iAppInfo.OwnedFileArray());
+    }
+
+
+/*
+ * Reads service information of the application.
+ */
+void CApaAppInfoReader::ReadServiceInfoL(const RPointerArray<Usif::CServiceInfo>& aServiceInfo)
+    {
+    TInt serviceCount=aServiceInfo.Count();
+    
+    if (serviceCount > 0)
+        {
+        iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);   
+        }
+    else
+        {
+        //if service information is not avaliable, just return.
+        return;        
+        }
+
+    //Read application service info one at a time and store in iServiceArray.
+    for (TInt index=0;index<serviceCount;index++)
+        {
+        TUid serviceUid=aServiceInfo[index]->Uid();
+        
+        CArrayFixFlat<TDataTypeWithPriority>* mimeTypesSupported = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(5);
+        CleanupStack::PushL(mimeTypesSupported);
+        
+        //Read supported mime types of a service
+        ReadMimeTypesSupportedL(aServiceInfo[index]->DataTypes(), *mimeTypesSupported); 
+        
+        RPointerArray<Usif::COpaqueData> serviceOpaqueData=aServiceInfo[index]->OpaqueData();
+        //SCR schould give atmost only one opaque data for a service.
+        ASSERT(!(serviceOpaqueData.Count()>1));
+        
+        HBufC8* opaqueData=NULL;
+        if(serviceOpaqueData.Count()>0)
+            {
+            opaqueData= serviceOpaqueData[0]->OpaqueData().AllocL();
+            }
+        else
+            {
+            //If opaque data is not available, create an empty object and assign to opaqueData        
+            opaqueData=HBufC8::NewL(0);
+            }
+        
+        TApaAppServiceInfo serviceInfo(serviceUid, mimeTypesSupported,opaqueData); // takes ownership of mimeTypesSupported and opaqueData 
+        CleanupStack::PushL(opaqueData);
+        iServiceArray->AppendL(serviceInfo);
+        CleanupStack::Pop(2, mimeTypesSupported);        
+    
+        //If service UID is KOpenServiceUid and it is first open service then initialize iIndexOfFirstOpenService
+        if ((serviceUid == KOpenServiceUid) && (iIndexOfFirstOpenService < 0))
+            iIndexOfFirstOpenService = iServiceArray->Count() - 1;        
+        }
+    } 
+
+
+/*
+ * Reads supported mime types and its handling priorities of a service
+ */
+void CApaAppInfoReader::ReadMimeTypesSupportedL(const RPointerArray<Usif::CDataType>& dataTypes, CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported) 
+    {
+    
+    const TInt dataTypeArraySize = dataTypes.Count();
+    //if there are no data types available, just return.
+    if (dataTypeArraySize <= 0)
+        return;
+   
+    for (TInt i=0; i < dataTypeArraySize; i++)
+        {
+        TDataTypePriority priority = static_cast<TDataTypePriority>(dataTypes[i]->Priority());
+        
+        //Check for data priority of UnTrusted apps however the trusted apps will not have any restrictions 
+        //over the data priority.   
+        //If an untrusted app has write device data capability (i.e. still has priority = KDataTypePrioritySystem),
+        //do not restrict to KDataTypeUnTrustedPriorityThreshold
+        if (priority > KDataTypeUnTrustedPriorityThreshold || priority == KDataTypePrioritySystem )
+            {
+            ReadAppSecurityInfo();
+
+            if (priority == KDataTypePrioritySystem)
+                {
+                // Check that the app has capability WriteDeviceData
+                if (!iHasWriteDeviceDataCap)
+                    priority = KDataTypePriorityNormal;
+                }
+            else
+                {
+                //data priority for UnTrusted apps would be capped if it is greater than the threshold priority i.e, KMaxTInt16.
+                //Component ID is zero if the application is shipped with phone.
+                TBool isInstalledApp=(iScr.GetComponentIdForAppL(iAppBinaryUidType[2])!=0);
+                if (!iIsSidTrusted && isInstalledApp) 
+                    {
+                    //if application sid is in unprotected range and the applciation is instaleld with  
+                    //one of the installers after phone marketed, then priority needs to be downgraded.
+                    priority = KDataTypeUnTrustedPriorityThreshold; 
+                    }
+                }
+            }
+
+        TBuf8<KMaxDataTypeLength> buf;
+        //Convert 16-bit descriptor to 8-bit descriptor.
+        buf.Copy(dataTypes[i]->Type());
+
+        TDataType dataType(buf);
+        TDataTypeWithPriority dataTypeWithPriority(dataType, priority); 
+        aMimeTypesSupported.AppendL(dataTypeWithPriority);
+        }
+    }
+
+
+/*
+ * Reads owned files information.
+ */
+void CApaAppInfoReader::ReadOwnedFilesInfoL(const RPointerArray<HBufC>& aOwnedFiles)
+    {
+    const TInt fileOwnershipArraySize = aOwnedFiles.Count();
+    
+    //if owned files information is not avaliable, just return.
+    if (fileOwnershipArraySize <= 0)
+        return;
+    
+    iOwnedFileArray = new(ELeave) CDesCArraySeg(fileOwnershipArraySize);
+
+    for (TInt index=0; index < fileOwnershipArraySize; index++)
+        {
+        HBufC *fileowned=aOwnedFiles[index]->Des().AllocL();
+        CleanupStack::PushL(fileowned);
+        iOwnedFileArray->AppendL(*fileowned); //takes the ownership of fileowned
+        CleanupStack::Pop(fileowned);
+        }
+    }
+
+void CApaAppInfoReader::ReadLocalisationInfoL()
+    {
+    RPointerArray<Usif::CLocalizableAppInfo> localisationInfo;
+    localisationInfo=iAppInfo.LocalizableAppInfoList();
+    ASSERT(localisationInfo.Count() <= 1);
+    
+    if(localisationInfo.Count()<=0)
+        {
+        //If localisable information is not avaialable then assign default icons.
+        TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL());     
+        return;
+        }
+
+    //Group name provided in localisation file takes precedence over group name provided in registration file name.
+    const TDesC& groupName=localisationInfo[0]->GroupName();
+
+    if(groupName.Length()>0)
+        {
+        iCapability.iGroupName=groupName;
+        }
+    
+    //Get application language for current phone language.
+    iApplicationLanguage=localisationInfo[0]->ApplicationLanguage();
+    
+    const Usif::CCaptionAndIconInfo* captionIconInfo=localisationInfo[0]->CaptionAndIconInfo();
+    
+    TBool useDefaultIcons=ETrue;
+    
+    if(captionIconInfo!=NULL)
+        {
+        iShortCaption=localisationInfo[0]->ShortCaption().AllocL();
+        if(iShortCaption && iShortCaption->Length() == 0)
+            {
+                delete iShortCaption;
+                iShortCaption=NULL;
+            }
+    
+        iCaption=captionIconInfo->Caption().AllocL();
+        if(iCaption && iCaption->Length() == 0)
+            {
+                delete iCaption;
+                iCaption=NULL;
+            }        
+    
+        iNumOfAppIcons=captionIconInfo->NumOfAppIcons();
+
+        if(captionIconInfo->IconFileName().Length()>0)
+            iIconFileName=captionIconInfo->IconFileName().AllocL();    
+
+        
+        if (iIconFileName && iIconFileName->Length())
+            {
+            if (iFs.IsValidName(*iIconFileName))
+                {
+                RFile file;
+                TInt fileSize( 0 );
+                TInt err= file.Open(iFs, *iIconFileName, EFileShareReadersOnly );
+                
+                //If the icon file does not exist, use default icons.
+                if(err==KErrNone)
+                    {
+                    User::LeaveIfError(err);
+                    CleanupClosePushL( file );
+                    User::LeaveIfError( file.Size( fileSize ) );
+                    CleanupStack::PopAndDestroy(&file);//file
+                    
+                    if ( fileSize > 0 )
+                        {
+                        if(FileIsMbmWithGenericExtensionL(*iIconFileName))
+                            {
+                            if (iNumOfAppIcons > 0)
+                                {
+                                //Icon file is valid and contains mbm icons.
+                                iIcons = CApaAppIconArray::NewAppIconsL(iNumOfAppIcons, *iIconFileName, *iIconLoader);
+                                useDefaultIcons=EFalse;
+                                }
+                            }
+                        else
+                            {
+                            //If the icon file is not a mbm icon file then the file is treated as a non-mbm file.                
+                            iNonMbmIconFile = ETrue;
+                            useDefaultIcons=EFalse;
+                            }
+                        
+                        }
+                    }
+                }
+            else
+                {
+                //If the filename is not a valid name then the file is treated as a non-mbm file.        
+                iNonMbmIconFile = ETrue;
+                useDefaultIcons=EFalse;                
+                }
+            }
+        }
+    
+    if(useDefaultIcons)
+        TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL());        
+
+    ReadViewInfoL(localisationInfo[0]->ViewDataList());
+    }
+
+/*
+ * Read application view information.
+ */
+
+void CApaAppInfoReader::ReadViewInfoL(const RPointerArray<Usif::CAppViewData>& aViewData)
+    {
+     const TInt numOfViews = aViewData.Count();
+
+     //if view information not avaliable, just return.     
+     if(numOfViews <=0 )
+         return;
+     
+     iViewDataArray = new(ELeave) CArrayPtrFlat<CApaAppViewData>(numOfViews);
+
+     //Read one view information at time and add it iViewDataArray
+     for(TInt view = 0; view < numOfViews; ++view)
+         {
+         CApaAppViewData* viewData = CApaAppViewData::NewLC();
+         
+         const TUid viewUid = aViewData[view]->Uid();
+         viewData->SetUid(viewUid);
+         
+         const TInt screenMode = {aViewData[view]->ScreenMode()};
+         viewData->SetScreenMode(screenMode);
+
+         const Usif::CCaptionAndIconInfo* viewCaptionIconInfo=aViewData[view]->CaptionAndIconInfo();
+         
+         if(viewCaptionIconInfo!=NULL)
+             {
+             viewData->SetCaptionL(viewCaptionIconInfo->Caption());
+    
+             const TInt numOfViewIcons = viewCaptionIconInfo->NumOfAppIcons();
+             viewData->SetNumOfViewIcons(numOfViewIcons);
+    
+             TPtrC viewIconFile = viewCaptionIconInfo->IconFileName();
+             
+             if (viewIconFile.Length())
+                 {
+                 viewData->SetIconFileNameL(viewIconFile);
+                 
+                 if (iFs.IsValidName(viewIconFile))
+                     {
+                     if(!FileIsMbmWithGenericExtensionL(viewIconFile))
+                         viewData->SetNonMbmIconFile(ETrue);
+                     }
+                 else    //If the filename is not a valid name then the file is treated as a non-mbm file.
+                     viewData->SetNonMbmIconFile(ETrue);
+                 }
+             else
+                 {
+                 viewIconFile.Set(KNullDesC);
+                 if (numOfViewIcons > 0 && iIconFileName)
+                     viewIconFile.Set(*iIconFileName); // default to app icon filename
+                 }
+             
+             if (numOfViewIcons > 0 && iFs.IsValidName(viewIconFile) && FileIsMbmWithGenericExtensionL(viewIconFile))
+                 {
+                 CApaAppIconArray* iconArray = CApaAppIconArray::NewViewIconsL(numOfViewIcons, viewIconFile, *iIconLoader);
+                 viewData->SetIconArray(iconArray);
+                 iconArray = NULL;
+                 }
+             }
+
+         iViewDataArray->AppendL(viewData);
+         CleanupStack::Pop(viewData);
+         }    
+    }
+
+#else
+
+CApaAppInfoReader* CApaAppInfoReader::NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid)
+    {
+    CApaAppInfoReader* self = new(ELeave) CApaAppInfoReader(aFs, aRegistrationFileName, aAppUid);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CApaAppInfoReader::CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid) :
+    iFs(aFs),
+    iAppUid(aAppUid),
+    iTimeStamp(0),
+    iDefaultScreenNumber(0),
+    iNonMbmIconFile(EFalse),
+    iLocalisableResourceFileTimeStamp(0),
+    iApplicationLanguage(ELangNone),
+    iIndexOfFirstOpenService(KErrNotFound),
+    iRegistrationFileName(aRegistrationFileName)
+    {
+    }
+
+TTime CApaAppInfoReader::TimeStamp() const
+    {
+    return iTimeStamp;
+    }
+
+TTime CApaAppInfoReader::IconFileTimeStamp() const
+     {
+     return iIconFileTimeStamp;
+     }
+
+HBufC* CApaAppInfoReader::LocalisableResourceFileName()
+    {
+    HBufC* localisableResourceFileName = iLocalisableResourceFileName;
+    iLocalisableResourceFileName = NULL; // ownership transferred to caller
+    return localisableResourceFileName;
+    }
+
+TTime CApaAppInfoReader::LocalisableResourceFileTimeStamp() const
+    {
+    return iLocalisableResourceFileTimeStamp;
+    }
+
 // reads as much info as it can
 // at least captions and icons must be setup on return from this method (using defaults if necessary)
 TBool CApaAppInfoReader::ReadL()
@@ -361,54 +838,6 @@
 	iAppBinaryFullName = parse.FullName().AllocL();
 	}
 
-
-HBufC* CApaAppInfoReader::CreateFullIconFileNameL(const TDesC& aIconFileName) const
-	{
-	HBufC* filename = NULL;
-	if (aIconFileName.Length() == 0)
-		return NULL;
-	/*
-	 * aIconFileName may contain a valid string in some format (for eg. URI format) other than path to a regular file on disk
-	 * and that can be a mbm or non-mbm file. Such a filename will be reported as invalid filename by iFs.IsValidName() method. 
-	 * aIconFileName will be returned since it is a valid string. 
-	 */	
-	if(!iFs.IsValidName(aIconFileName))
-		{
-		filename = aIconFileName.AllocL();
-		return filename;
-		}
-	
-	TParsePtrC parsePtr(aIconFileName);
-	if (parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
-		return NULL;
-
-	// check for fully qualified icon filename
-	if (parsePtr.DrivePresent() && BaflUtils::FileExists(iFs, aIconFileName))
-		filename = aIconFileName.AllocL();
-	else
-		{
-		// check for icon file on same drive as localisable resource file
-		TParse parse;
-		TPtrC localisableResourceFileDrive = TParsePtrC(*iLocalisableResourceFileName).Drive();
-		TInt ret = parse.SetNoWild(localisableResourceFileDrive, &aIconFileName, NULL);
-		if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
-			filename = parse.FullName().AllocL();
-		else
-			{
-			TPtrC registrationFileDrive = TParsePtrC(iRegistrationFileName).Drive();
-			if (TInt(TDriveUnit(registrationFileDrive)) != TInt(TDriveUnit(localisableResourceFileDrive)))
-				{
-				// check for icon file on same drive as registration file
-				ret = parse.SetNoWild(registrationFileDrive, &aIconFileName, NULL);
-				if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
-					filename = parse.FullName().AllocL();
-				}
-			}
-		}
-
-	return filename;
-	}
-
 void CApaAppInfoReader::ReadLocalisableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons)
 	{
 	RResourceReader resourceReader;
@@ -570,68 +999,6 @@
 	CleanupStack::PopAndDestroy(&resourceReader);
 	}
 
-/*An MBM file may have a generic icon extension. In this case, as a way to check whether the file is an MBM one, 
-it is necessary to read the content of the fist four 32bit words of it and find out whether these words correspond to 
-KWriteonceFileStoreUid, KMultiBitmapFileImageUid, zero and KMultiBitmapFileImageChecksum respectively (defined in graphics/gditools/bmconv/bmconv.h).
-So the file is opened and the first 4 32 bit words are extracted and compared with the header information of standard MBM file.
-If they match, the function returns ETrue, else it returns EFalse */
-TBool CApaAppInfoReader::FileIsMbmWithGenericExtensionL(const TDesC& aFileName)
-      { 
-      if (aFileName.Length() > 0) 
-            { 
-            //open a file in Share mode - this will allow other methods to access it too
-            RFile file;
-            RFs fs;
-            User::LeaveIfError(fs.Connect());
-            CleanupClosePushL(fs);
-            User::LeaveIfError(file.Open(fs,aFileName,EFileShareReadersOnly));
-            //this is done beacuse the file can also be accessed by applist at the same time
-            //buffer stores the 16 bytes of the file
-            CleanupClosePushL(file);
-            TBuf8<16> buffer;
-            User::LeaveIfError(file.Read(buffer,16));
-            CleanupStack::PopAndDestroy();//file
-            CleanupStack::PopAndDestroy(&fs);//fs
-            //we use a constant pointer to the buffer to read header info
-        	TPtrC8 filePointer(buffer);
-        	
-            /*The first 16 bytes of an MBM file are the same for any generic MBM file.
-            These are :
-            KWriteOnceFileStoreUid = 0x10000037(Emulator MBM file) 0x10000041(ROM image)	
-            KMultiBitMapFileImageUid = 0x10000042(Emulator MBM file) 	0x00000001(ROM image)
-            Zero = 0x00000000(Emulator MBM file) 0x0000000C(ROM image)
-            checksum = 0x47396439(Emulator MBM file) 0x10000040(ROM image)
-            The first 16 bytes of the given file is compared with these standard values to ascertain it is MBM file*/
-        	if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x37))
-        		{//KWriteOnceFileStoreUid = 0x10000037
-        		if((filePointer[7]==0x10)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x42))
-        			{//KMultiBitMapFileImageUid = 0x10000042
-        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x00))
-        				{//Zero = 0x00000000)
-        				if((filePointer[15]==0x47)&&(filePointer[14]==0x39)&&(filePointer[13]==0x64)&&(filePointer[12]==0x39))
-        					{//checksum = 0x47396439
-        					return ETrue;
-        					}
-        				}
-        			}
-        		}
-        	//Else Check for ROM Image MBM file's header
-        	else if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x41))
-        		{//KWriteOnceFileStoreUid = 0x10000041
-        		if((filePointer[7]==0x00)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x01))
-        			{//KMultiBitMapFileImageUid = 0x00000001
-        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x0C))
-        				{//Zero = 0x0000000C)
-        				if((filePointer[15]==0x10)&&(filePointer[14]==0x00)&&(filePointer[13]==0x00)&&(filePointer[12]==0x40))
-        					{//checksum = 0x10000040
-        					return ETrue;
-        					}
-        				}
-        			}
-        		}
-        	}
-      return EFalse;
-      }
 
 HBufC8* CApaAppInfoReader::ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile)
 	{ // static
@@ -844,6 +1211,119 @@
 		}
 	}
 
+
+HBufC* CApaAppInfoReader::CreateFullIconFileNameL(const TDesC& aIconFileName) const
+    {
+    HBufC* filename = NULL;
+    if (aIconFileName.Length() == 0)
+        return NULL;
+    /*
+     * aIconFileName may contain a valid string in some format (for eg. URI format) other than path to a regular file on disk
+     * and that can be a mbm or non-mbm file. Such a filename will be reported as invalid filename by iFs.IsValidName() method. 
+     * aIconFileName will be returned since it is a valid string. 
+     */ 
+    if(!iFs.IsValidName(aIconFileName))
+        {
+        filename = aIconFileName.AllocL();
+        return filename;
+        }
+    
+    TParsePtrC parsePtr(aIconFileName);
+    if (parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
+        return NULL;
+
+    // check for fully qualified icon filename
+    if (parsePtr.DrivePresent() && BaflUtils::FileExists(iFs, aIconFileName))
+        filename = aIconFileName.AllocL();
+    else
+        {
+        // check for icon file on same drive as localisable resource file
+        TParse parse;
+        TPtrC localisableResourceFileDrive = TParsePtrC(*iLocalisableResourceFileName).Drive();
+        TInt ret = parse.SetNoWild(localisableResourceFileDrive, &aIconFileName, NULL);
+        if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
+            filename = parse.FullName().AllocL();
+        else
+            {
+            TPtrC registrationFileDrive = TParsePtrC(iRegistrationFileName).Drive();
+            if (TInt(TDriveUnit(registrationFileDrive)) != TInt(TDriveUnit(localisableResourceFileDrive)))
+                {
+                // check for icon file on same drive as registration file
+                ret = parse.SetNoWild(registrationFileDrive, &aIconFileName, NULL);
+                if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
+                    filename = parse.FullName().AllocL();
+                }
+            }
+        }
+
+    return filename;
+    }
+
+#endif
+
+/*An MBM file may have a generic icon extension. In this case, as a way to check whether the file is an MBM one, 
+it is necessary to read the content of the fist four 32bit words of it and find out whether these words correspond to 
+KWriteonceFileStoreUid, KMultiBitmapFileImageUid, zero and KMultiBitmapFileImageChecksum respectively (defined in graphics/gditools/bmconv/bmconv.h).
+So the file is opened and the first 4 32 bit words are extracted and compared with the header information of standard MBM file.
+If they match, the function returns ETrue, else it returns EFalse */
+TBool CApaAppInfoReader::FileIsMbmWithGenericExtensionL(const TDesC& aFileName)
+      { 
+      if (aFileName.Length() > 0) 
+            { 
+            //open a file in Share mode - this will allow other methods to access it too
+            RFile file;
+            RFs fs;
+            User::LeaveIfError(fs.Connect());
+            CleanupClosePushL(fs);
+            User::LeaveIfError(file.Open(fs,aFileName,EFileShareReadersOnly));
+            //this is done beacuse the file can also be accessed by applist at the same time
+            //buffer stores the 16 bytes of the file
+            CleanupClosePushL(file);
+            TBuf8<16> buffer;
+            User::LeaveIfError(file.Read(buffer,16));
+            CleanupStack::PopAndDestroy();//file
+            CleanupStack::PopAndDestroy(&fs);//file, fs
+            //we use a constant pointer to the buffer to read header info
+            TPtrC8 filePointer(buffer);
+            
+            /*The first 16 bytes of an MBM file are the same for any generic MBM file.
+            These are :
+            KWriteOnceFileStoreUid = 0x10000037(Emulator MBM file) 0x10000041(ROM image)    
+            KMultiBitMapFileImageUid = 0x10000042(Emulator MBM file)    0x00000001(ROM image)
+            Zero = 0x00000000(Emulator MBM file) 0x0000000C(ROM image)
+            checksum = 0x47396439(Emulator MBM file) 0x10000040(ROM image)
+            The first 16 bytes of the given file is compared with these standard values to ascertain it is MBM file*/
+            if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x37))
+                {//KWriteOnceFileStoreUid = 0x10000037
+                if((filePointer[7]==0x10)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x42))
+                    {//KMultiBitMapFileImageUid = 0x10000042
+                    if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x00))
+                        {//Zero = 0x00000000)
+                        if((filePointer[15]==0x47)&&(filePointer[14]==0x39)&&(filePointer[13]==0x64)&&(filePointer[12]==0x39))
+                            {//checksum = 0x47396439
+                            return ETrue;
+                            }
+                        }
+                    }
+                }
+            //Else Check for ROM Image MBM file's header
+            else if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x41))
+                {//KWriteOnceFileStoreUid = 0x10000041
+                if((filePointer[7]==0x00)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x01))
+                    {//KMultiBitMapFileImageUid = 0x00000001
+                    if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x0C))
+                        {//Zero = 0x0000000C)
+                        if((filePointer[15]==0x10)&&(filePointer[14]==0x00)&&(filePointer[13]==0x00)&&(filePointer[12]==0x40))
+                            {//checksum = 0x10000040
+                            return ETrue;
+                            }
+                        }
+                    }
+                }
+            }
+      return EFalse;
+      }
+
 // This method can be used to check whether app has a WriteDeviceCap 
 // and its sid is trusted
 void CApaAppInfoReader::ReadAppSecurityInfo()
@@ -925,7 +1405,7 @@
 		return ret;
 		}
 	else
-		aUseCache = ETrue;
+	    aUseCache = ETrue;	    
 
 	// if filename in array, get the next index
 	TInt ret = 0;
@@ -963,6 +1443,7 @@
 // Leaves if an error occurs while trying to populate aIcons or sort icons
 TBool CApaIconLoader::LoadIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CArrayPtr<CApaMaskedBitmap>& aIcons)
 	{
+  
 	TEntry entry;
 	TInt error=iFs.Entry(aMbmFileName,entry);
 	if (error!=KErrNone)
@@ -985,7 +1466,8 @@
 		CApaMaskedBitmap* bitmap = CApaMaskedBitmap::NewLC();
 		fileIndex = IconIndexL(aMbmFileName, useCache);
 		User::LeaveIfError(bitmap->Load(mbmFile, 2*fileIndex));
-		User::LeaveIfError((bitmap->Mask())->Load(mbmFile,2*fileIndex+1));		
+		User::LeaveIfError((bitmap->Mask())->Load(mbmFile,2*fileIndex+1));   
+		
 		aIcons.AppendL(bitmap);
 		CleanupStack::Pop(bitmap);		
 		}
--- a/appfw/apparchitecture/aplist/aplappinforeader.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplappinforeader.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,6 +26,11 @@
 #include <barsread.h>
 #include <apgicnfl.h>
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <usif/scr/scr.h>
+#include <usif/scr/appregentries.h>
+#endif
+
 class TEntry;
 class RFs;
 class CResourceFile;
@@ -34,6 +39,7 @@
 class CApaAppIconArray;
 class CApaAppViewData;
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
 @internalComponent
 */
@@ -42,7 +48,7 @@
 public:
 	static TBool TypeUidIsForRegistrationFile(const TUidType& aUidType);
 	};
-
+#endif
 
 /**
 @internalComponent
@@ -126,8 +132,16 @@
 class CApaAppInfoReader : public CBase
 	{
 public:
-	static CApaAppInfoReader* NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
-	TBool ReadL();
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    static CApaAppInfoReader* NewL(RFs& aFs, const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScr); 
+#else
+    static CApaAppInfoReader* NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
+    HBufC* LocalisableResourceFileName();
+    TTime LocalisableResourceFileTimeStamp() const; 
+    TTime TimeStamp() const;
+    TTime IconFileTimeStamp() const;   
+#endif
+    TBool ReadL();    
     static TBool FileIsMbmWithGenericExtensionL(const TDesC& aFileName);
 	~CApaAppInfoReader();
 public:
@@ -145,35 +159,41 @@
 	HBufC* IconFileName();
 	TBool NonMbmIconFile() const;
 	CApaIconLoader* IconLoader();
-	
-	TTime TimeStamp() const;
-	TTime IconFileTimeStamp() const;
-	
-	HBufC* LocalisableResourceFileName();
-	TTime LocalisableResourceFileTimeStamp() const;
 	TLanguage AppLanguage() const;
 	CArrayFixFlat<TApaAppServiceInfo>* ServiceArray(TInt& aIndexOfFirstOpenService);
 	HBufC8* OpaqueData();
+	
 private:
-	CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	CApaAppInfoReader(RFs& aFs, const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScr);
+    void ReadAppRegistrationInfoL();
+    void ReadServiceInfoL(const RPointerArray<Usif::CServiceInfo>& aServiceInfo);    
+    void ReadOwnedFilesInfoL(const RPointerArray<HBufC>& aOwnedFiles);
+    void ReadMimeTypesSupportedL(const RPointerArray<Usif::CDataType>& dataTypes, CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported);    
+    void ReadLocalisationInfoL();
+    void ReadViewInfoL(const RPointerArray<Usif::CAppViewData>& aViewData);    
+#ifdef _DEBUG   
+    void DisplayAppInfo();
+#endif
+    
+#else
+    CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
+    void ReadMandatoryInfoL(RResourceReader& aResourceReader);
+    void ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId);
+    void ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
+    void ReadMimeTypesSupportedL(RResourceReader& aResourceReader, CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported);       
+    void ReadLocalisableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons);
+    HBufC* CreateFullIconFileNameL(const TDesC& aIconFileName) const;    
+#endif
 	void ConstructL();
-	void ReadMandatoryInfoL(RResourceReader& aResourceReader);
-	void ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId);
-	void ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
-	void ReadMimeTypesSupportedL(RResourceReader& aResourceReader, CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported);
-	void ReadLocalisableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons);
-	HBufC* CreateFullIconFileNameL(const TDesC& aIconFileName) const;
 	TBool HasWriteDeviceDataCap();
     void ReadAppSecurityInfo();
-	
 	static HBufC8* ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
 private:
 	RFs& iFs;
 	TUid iAppUid;
 	HBufC* iAppBinaryFullName;
 	TUidType iAppBinaryUidType;
-	TTime iTimeStamp;
-	TTime iIconFileTimeStamp;
 	TApaAppCapability iCapability;
 	TUint iDefaultScreenNumber;
 	HBufC* iCaption;
@@ -184,20 +204,28 @@
 	CDesCArray* iOwnedFileArray;
 	HBufC* iIconFileName;
 	TBool iNonMbmIconFile; // ETrue if icon filename is not an MBM file, however, EFalse does not necessarily mean it is an MBM file
-	HBufC* iLocalisableResourceFileName;
-	TTime iLocalisableResourceFileTimeStamp;
 	TLanguage iApplicationLanguage;
 	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
-	TInt iIndexOfFirstOpenService;
-	TBool iOpenServiceIsLegacy;
+    TInt iIndexOfFirstOpenService; 	
 	HBufC8* iOpaqueData;
 private:
-	const TDesC& iRegistrationFileName;
 	TBool iHasWriteDeviceDataCap;
     TBool iIsSidTrusted;
     // This flag is used to determine if app security info was allready read
     TBool iSecurityInfoHasBeenRead;
-	CApaIconLoader* iIconLoader;	
+	CApaIconLoader* iIconLoader;
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	const Usif::CApplicationRegistrationData& iAppInfo; //The ownership is not taken	
+	const Usif::RSoftwareComponentRegistry& iScr; //The ownership is not taken	
+#else
+    const TDesC& iRegistrationFileName;
+    TTime iTimeStamp;
+    TTime iIconFileTimeStamp;   
+    HBufC* iLocalisableResourceFileName;
+    TTime iLocalisableResourceFileTimeStamp; 
+    TBool iOpenServiceIsLegacy;   
+#endif
+	
 	};
 
 
--- a/appfw/apparchitecture/aplist/aplapplist.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplapplist.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -21,7 +21,6 @@
 #include "APFDEF.H"
 #include "../apparc/TRACE.H"
 #include "apgnotif.h"			// MApaAppListServObserver
-#include "aplappregfinder.h"	// CApaAppRegFinder
 #include <bautils.h>			// BaflUtils::NearestLanguageFile()
 #include <s32mem.h>				// RBufWriteStream
 #include "aplappinforeader.h"
@@ -30,6 +29,13 @@
 #include <bafl/sysutil.h>
 #endif
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include<usif/scr/scr.h>
+#include<usif/scr/appregentries.h>
+#else
+#include "aplappregfinder.h"    // CApaAppRegFinder
+#endif
+
 
 // Delays in the pseudo idle object that builds the application list
 //
@@ -49,6 +55,13 @@
 const TInt16 KROMVersionCacheFileBuildVersion=0;
 #endif
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+const TInt KNumAppEntriesFromSCR=10;
+
+const TInt KSCRConnectionWaitTime=20000; //Time to wait if SCR is busy
+const TUid KUidSisLaunchServer={0x1020473f};
+#endif
+
 
 GLDEF_C void Panic(TApgPanic aPanic)
 	{
@@ -84,7 +97,373 @@
 	TLanguage iPrevLanguage;
 	};
 
-		
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+enum TApaSCRFetchAction
+    {
+    EGetAllAppsInfo, //Fetch all application the information from SCR
+    EGetSpecificAppsInfo //Fetch only provided application uids information
+    };
+
+/*
+ * Contain information about appliations to be fetched from SCR.
+ */
+
+NONSHARABLE_CLASS(CApaAppSCRFetchInfo : public CBase)
+    { 
+public:
+    static CApaAppSCRFetchInfo* NewL(TApaSCRFetchAction aSCRFetchAction, RArray<TApaAppUpdateInfo>* aAppUpdateInfo);
+    ~CApaAppSCRFetchInfo();
+    RArray<TApaAppUpdateInfo>* AppUpdateInfo();
+    TApaSCRFetchAction SCRFetchAction();
+    
+private:
+    CApaAppSCRFetchInfo(TApaSCRFetchAction aSCRFetchAction, RArray<TApaAppUpdateInfo>* aAppUpdateInfo);
+    
+private:
+    TApaSCRFetchAction iSCRFetchAction;
+    RArray<TApaAppUpdateInfo>* iAppUpdateInfo;
+    };
+
+
+/*
+ * Reads multiple application information from SCR and caches it. When requested provides one application
+ * information at a time.
+ */
+NONSHARABLE_CLASS(CApaAppList::CApaScrAppInfo)
+    {
+public:
+    static CApaScrAppInfo* NewL(const Usif::RSoftwareComponentRegistry& aScrCon, TInt aNumEntries);    
+    void GetAllAppsInfoL();
+    void GetSpecificAppsInfoL(RArray<TApaAppUpdateInfo>* aAppUpdateInfo);    
+    TUid GetNextApplicationInfo(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData);
+    TApaSCRFetchAction GetSCRFetchAction();    
+    ~CApaScrAppInfo();
+    
+private:
+    void ConstructL();
+    CApaScrAppInfo(const Usif::RSoftwareComponentRegistry& aScr, TInt aNumEntries);
+    void GetAppUidListL(RArray<TApaAppUpdateInfo>& aAppUpdateInfoArr, RArray<TUid>& aAppUids);
+    TUid GetAllAppsNextApplicationInfoL(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData); 
+    TUid GetSpecificAppsNextApplicationInfoL(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData);  
+private:
+    Usif::RApplicationRegistryView iScrAppView;
+    RPointerArray<Usif::CApplicationRegistrationData> iAppInfo;
+    RPointerArray<CApaAppSCRFetchInfo> iSCRFetchInfoQueue;
+    const Usif::RSoftwareComponentRegistry& iSCR;   
+    TBool iIsSCRRegViewOpen;
+    TInt iSpecificAppsIndex;
+    CApaAppSCRFetchInfo* iAppSCRFetchInfo;
+    TBool iMoreAppInfo;
+    TInt iNumEntriesToFetch;
+    };
+
+
+
+CApaAppSCRFetchInfo* CApaAppSCRFetchInfo::NewL(TApaSCRFetchAction aSCRFetchAction, RArray<TApaAppUpdateInfo>* aAppUpdateInfo)
+            {
+            //Ownership of aAppUpdateInfo is transfered to this object.
+            CApaAppSCRFetchInfo* self=new (ELeave) CApaAppSCRFetchInfo(aSCRFetchAction, aAppUpdateInfo);
+            return(self);
+            }
+
+
+CApaAppSCRFetchInfo::CApaAppSCRFetchInfo(TApaSCRFetchAction aSCRFetchAction, RArray<TApaAppUpdateInfo>* aAppUpdateInfo):
+        iSCRFetchAction(aSCRFetchAction),        
+        iAppUpdateInfo(aAppUpdateInfo)
+        {
+        }
+
+CApaAppSCRFetchInfo::~CApaAppSCRFetchInfo()
+    {
+    delete iAppUpdateInfo;
+    }
+
+RArray<TApaAppUpdateInfo>* CApaAppSCRFetchInfo::AppUpdateInfo()
+            {
+            return iAppUpdateInfo;
+            }
+
+
+TApaSCRFetchAction CApaAppSCRFetchInfo::SCRFetchAction()
+    {
+    return iSCRFetchAction;
+    }
+
+
+//CApaAppList::CApaScrAppInfo
+
+CApaAppList::CApaScrAppInfo* CApaAppList::CApaScrAppInfo::NewL(const Usif::RSoftwareComponentRegistry& aScrCon, TInt aNumEntries)
+    { 
+    CApaScrAppInfo* self=new(ELeave) CApaScrAppInfo(aScrCon, aNumEntries);
+    CleanupStack::PushL(self);    
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+
+CApaAppList::CApaScrAppInfo::CApaScrAppInfo(const Usif::RSoftwareComponentRegistry& aScr, TInt aNumEntries):
+        iSCR(aScr),
+        iIsSCRRegViewOpen(EFalse),
+        iSpecificAppsIndex(-1),
+        iAppSCRFetchInfo(NULL),
+        iMoreAppInfo(EFalse),
+        iNumEntriesToFetch(aNumEntries)
+       
+    {
+    }
+
+void CApaAppList::CApaScrAppInfo::ConstructL()
+    {
+    }
+
+
+CApaAppList::CApaScrAppInfo::~CApaScrAppInfo()
+    {
+    if(iAppSCRFetchInfo)
+        {
+        delete iAppSCRFetchInfo; 
+        iAppSCRFetchInfo=NULL;
+        }
+    
+    iAppInfo.ResetAndDestroy();
+    iSCRFetchInfoQueue.ResetAndDestroy();
+    iScrAppView.Close();
+    }
+
+/*
+ * Gets all the application information available in the SCR. It adds SCR fetch info with action EGetAllAppsInfo to a queue 
+ * to get all the application information. The information can be obtained one at a time by calling GetNextApplicationInfoL 
+ * function.
+ */
+void CApaAppList::CApaScrAppInfo::GetAllAppsInfoL()
+    {
+    CApaAppSCRFetchInfo* appSCRFetchInfo = CApaAppSCRFetchInfo::NewL(EGetAllAppsInfo, NULL);
+    CleanupStack::PushL(appSCRFetchInfo);      
+    iSCRFetchInfoQueue.AppendL(appSCRFetchInfo);
+    CleanupStack::Pop();
+    }
+
+
+/*
+ * Gets specific application information from the SCR. It adds SCR fetch info request with action EGetSpecificAppsInfo 
+ * along with the required uid list to the queue. The information can be obtained one at a time by calling GetNextApplicationInfoL 
+ * function.
+ */
+void CApaAppList::CApaScrAppInfo::GetSpecificAppsInfoL(RArray<TApaAppUpdateInfo>* aAppUpdateInfo)
+    {
+    CApaAppSCRFetchInfo* appSCRFetchInfo=CApaAppSCRFetchInfo::NewL(EGetSpecificAppsInfo, aAppUpdateInfo);
+    CleanupStack::PushL(appSCRFetchInfo);
+    iSCRFetchInfoQueue.AppendL(appSCRFetchInfo);
+    CleanupStack::Pop();   
+    }
+
+/*
+ * Create array of uids from TApaAppUpdateInfo array.
+ */
+void CApaAppList::CApaScrAppInfo::GetAppUidListL(RArray<TApaAppUpdateInfo>& aAppUpdateInfoArr, RArray<TUid>& aAppUids)
+    {
+    TInt count=aAppUpdateInfoArr.Count();
+    
+    for(TInt index=0;index<count;index++)
+        {
+        TApaAppUpdateInfo appUpdateInfo=aAppUpdateInfoArr[index];
+        aAppUids.AppendL(appUpdateInfo.iAppUid);
+        }
+    }
+
+
+TApaSCRFetchAction CApaAppList::CApaScrAppInfo::GetSCRFetchAction()
+{
+    return iAppSCRFetchInfo->SCRFetchAction();
+}
+
+
+/*
+ * Provides one application information at a time. Returns Null UID if no more application information available.
+ * Ownership of aAppData is transfered to calling function.
+ */
+TUid CApaAppList::CApaScrAppInfo::GetNextApplicationInfo(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData)
+    {
+    aAppData=NULL;
+    TUid appUid=KNullUid;
+
+    while(appUid==KNullUid)
+        {
+        //If there is no valid current SCR fetch information, get it from SCR fetch info queue
+        if(!iAppSCRFetchInfo)
+            {
+            if(iSCRFetchInfoQueue.Count()>0)
+                {
+                //Get next SCR fetch info
+                iAppSCRFetchInfo=iSCRFetchInfoQueue[0]; 
+                iSCRFetchInfoQueue.Remove(0); 
+                iMoreAppInfo=ETrue;               
+                }
+            else
+                {
+                //No more SCR fetch information avaialable.
+                break;
+                }
+            }
+        
+        //Get next application information        
+        if(iAppSCRFetchInfo->SCRFetchAction()==EGetAllAppsInfo)
+            {
+            //If there is a leave with current SCR fetch info, ignore and proceed with next SCR fetch info
+            TRAP_IGNORE(appUid=GetAllAppsNextApplicationInfoL(aAppAction, aAppData));
+            }
+        else
+            {
+            //If there is a leave with current SCR fetch info, ignore and proceed with next SCR fetch info        
+            TRAP_IGNORE(appUid=GetSpecificAppsNextApplicationInfoL(aAppAction, aAppData));       
+            }
+            
+        if(appUid==KNullUid)
+            {
+            //If no application information avaialble with current fetch action reset the values for next SCR fetch action.
+            delete iAppSCRFetchInfo;
+            iAppSCRFetchInfo=NULL;
+            iScrAppView.Close();
+            iIsSCRRegViewOpen=EFalse;            
+            }
+        }
+    
+    return(appUid);
+    }
+
+TUid CApaAppList::CApaScrAppInfo::GetAllAppsNextApplicationInfoL(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData)
+    {
+    TUid appUid=KNullUid;
+
+    if(iAppInfo.Count()==0 && iMoreAppInfo)
+        {
+        //Open registry view if its not open.
+        if(!iIsSCRRegViewOpen)
+            {
+            TInt err=KErrNone;
+            TInt timeOut=KSCRConnectionWaitTime;
+
+            //Retry if an error occurs while opening a SCR view. 
+            while(timeOut < KSCRConnectionWaitTime*8)
+            {
+            TRAP(err, iScrAppView.OpenViewL(iSCR));
+            if(err != KErrNone)
+                {
+                User::After(timeOut);
+                timeOut= (2*timeOut); 
+                }
+            else
+                {
+                break;
+                }
+            }
+            User::LeaveIfError(err);
+            iIsSCRRegViewOpen=ETrue;
+            }
+        
+        //Get next available applications information.
+        iScrAppView.GetNextApplicationRegistrationInfoL(iNumEntriesToFetch, iAppInfo);
+        if(iAppInfo.Count()<KNumAppEntriesFromSCR)
+            iMoreAppInfo=EFalse;
+        }
+
+    //If no application information avaialble, return Null UID.
+    if(iAppInfo.Count()==0)
+        return KNullUid;
+
+    aAppData=iAppInfo[0];
+    aAppAction=TApaAppUpdateInfo::EAppPresent;
+    iAppInfo.Remove(0);
+    appUid=aAppData->AppUid();
+    return appUid;
+    }
+
+
+/*
+ * Gets next application information when specific applications information requested.
+ */
+TUid CApaAppList::CApaScrAppInfo::GetSpecificAppsNextApplicationInfoL(TApaAppUpdateInfo::TApaAppAction& aAppAction, Usif::CApplicationRegistrationData*& aAppData)
+    {
+    TUid appUid=KNullUid;
+    TApaAppUpdateInfo::TApaAppAction action = TApaAppUpdateInfo::EAppNotPresent; //To make compiler happy
+    Usif::CApplicationRegistrationData* appData=NULL;
+    
+    while(appUid==KNullUid)
+        {
+        if(iAppInfo.Count()==0 && iMoreAppInfo)
+            {
+            //Open registry view if its not open and also provides application uid list for which applist needs to be updated.
+            if(!iIsSCRRegViewOpen)
+                {
+                RArray<TUid> appUids;
+                CleanupClosePushL(appUids);
+                //Get application uids list.
+                GetAppUidListL(*iAppSCRFetchInfo->AppUpdateInfo(), appUids);
+                
+                TInt err=KErrNone;
+                do
+                    {
+                    TRAP(err, iScrAppView.OpenViewL(iSCR, appUids));
+                    if(err)
+                        User::After(KSCRConnectionWaitTime);
+                    }
+                while(err!=KErrNone);
+
+                CleanupStack::PopAndDestroy();
+                iIsSCRRegViewOpen=ETrue;
+                iSpecificAppsIndex=0;
+                }
+            
+            //Get next available applications information.
+            iScrAppView.GetNextApplicationRegistrationInfoL(iNumEntriesToFetch,iAppInfo);
+            if(iAppInfo.Count()<KNumAppEntriesFromSCR)
+                iMoreAppInfo=EFalse;
+            }
+    
+        RArray<TApaAppUpdateInfo>& appUpdateInfo=*iAppSCRFetchInfo->AppUpdateInfo();
+        
+        
+        if(iSpecificAppsIndex<appUpdateInfo.Count())
+            {
+            appUid=appUpdateInfo[iSpecificAppsIndex].iAppUid;
+            action=appUpdateInfo[iSpecificAppsIndex].iAction;
+    
+            //If application information avaialable, and if application action is not uninstalled or
+            //If application action is uninstalled and the uninstalled application exists in SCR,
+            //then get the info and assign to aAppData.
+            if(iAppInfo.Count()>0)
+                {
+                if(iAppInfo[0]->AppUid()==appUid)
+                    {
+                    appData=iAppInfo[0];
+                    iAppInfo.Remove(0);
+                    }
+                }
+            
+            iSpecificAppsIndex++;
+            
+            //If action is not uninstalled, there should be application data in SCR. Otherwise skip the application action.
+            if((action!=TApaAppUpdateInfo::EAppNotPresent) && appData==NULL)
+                {
+                appUid=KNullUid;
+                }
+            
+            }
+            //If there are no more applications in the current update applist, break the loop;     
+            if(appUpdateInfo.Count()==iSpecificAppsIndex)
+                break;        
+        }
+    
+    aAppData=appData;
+    aAppAction=action;
+    return appUid;
+    }
+
+#endif
+
 //
 // Local functions
 //
@@ -108,26 +487,29 @@
 //
 
 EXPORT_C CApaAppList* CApaAppList::NewL(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	{
-	CApaAppList* self=new (ELeave) CApaAppList(aFs, aLoadMbmIconsOnDemand, aIdlePeriodicDelay);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
+    {
+    CApaAppList* self=new (ELeave) CApaAppList(aFs, aLoadMbmIconsOnDemand, aIdlePeriodicDelay);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
 
 CApaAppList::CApaAppList(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	:iFs(aFs),
-	iFlags(0),
-	iIdlePeriodicDelay(aIdlePeriodicDelay),
-	iLoadMbmIconsOnDemand(aLoadMbmIconsOnDemand),
-    iUninstalledApps(NULL)	
-	{
-	}
+    :iFs(aFs),
+    iFlags(0),
+    iIdlePeriodicDelay(aIdlePeriodicDelay),
+    iLoadMbmIconsOnDemand(aLoadMbmIconsOnDemand),
+    iUninstalledApps(NULL)  
+    {
+    }
+
 
 void CApaAppList::ConstructL()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	iAppRegFinder = CApaAppRegFinder::NewL(iFs);
+#endif
 	
 	User::LeaveIfError(iFsShareProtected.Connect());
 	User::LeaveIfError(iFsShareProtected.ShareProtected());
@@ -135,8 +517,11 @@
 	
 	//Start language change monitor.
 	iAppLangMonitor = CApaLangChangeMonitor::NewL(*this);
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  	
 	const TInt KArrayGranularity = 128;
 	iForcedRegistrations = new (ELeave) CDesCArraySeg(KArrayGranularity);
+#endif	
 	
 	// Init the AppsList cache paths
 	_LIT(KAppsListCacheFileName, ":\\private\\10003a3f\\AppsListCache\\AppsList.bin");
@@ -176,12 +561,14 @@
 
 	delete iDefaultIconArray;
 	delete iDefaultAppIconMbmFileName;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	delete iAppRegFinder;
+    delete iForcedRegistrations;
+#endif
 	delete iAppIdler;
 	delete iAppListStorer;
 	delete iAppIconLoader;
 	delete iAppLangMonitor;
-	delete iForcedRegistrations;
 	delete iIconCaptionObserver;
 	delete iIconCaptionOverrides;
 	iAppsListCacheFileName.Close();
@@ -190,8 +577,16 @@
 	
 	iCustomAppList.ResetAndDestroy();
 	iCustomAppList.Close();
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	iForceRegAppUids.Close();	
+	delete iScrAppInfo;
+	iScr.Close();
+#endif	
 	}
 
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK   
 // Stop scanning applications if installation or uninstallation has started	
 EXPORT_C void CApaAppList::StopScan(TBool aNNAInstall)
 	{
@@ -206,7 +601,7 @@
 		}
 	UndoSetPending(iAppData);
 	}
-	
+
 // Allow scanning when installation or uninstallation is complete
 EXPORT_C void CApaAppList::RestartScanL()
 	{
@@ -218,18 +613,7 @@
 	{
 	return iNNAInstallation;
 	}
-
-void CApaAppList::UndoSetPending(CApaAppData* aAppData)
-	// Reset all apps to pevious pending state so they don't get purged
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		{
-		if (aAppData->iIsPresent == CApaAppData::EPresentPendingUpdate)
-			{
-			aAppData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
-	}
+#endif
 
 EXPORT_C void CApaAppList::StartIdleUpdateL()
 /** Updates the list asynchronously, using an idle time active object, 
@@ -267,7 +651,8 @@
 		delete iAppIdler;
 		iAppIdler=NULL;
 		}
-		
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	// DEF072701
 	// When performing the update scan let the idle object have lower priority.
 	if (IsFirstScanComplete())
@@ -280,16 +665,133 @@
 		}
 	SetPending(iAppData);
 	iAppRegFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
- 
- 	// DEF072701
- 	// If this is the first scan i.e the boot scan then it may take some time. Thus
- 	// the periodic delay value should be used so that this process will stop periodically 
- 	// to allow time for other processes.
- 	// If this is just a re-scan it should take much less time. Therefore it should just
- 	// be completed in one go rather than periodically delayed. Thus the delay value
- 	// should be set to 0.
-	iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
-	}
+    // DEF072701
+    // If this is the first scan i.e the boot scan then it may take some time. Thus
+    // the periodic delay value should be used so that this process will stop periodically 
+    // to allow time for other processes.
+    // If this is just a re-scan it should take much less time. Therefore it should just
+    // be completed in one go rather than periodically delayed. Thus the delay value
+    // should be set to 0.
+    iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
+#else	
+	
+    iAppIdler=CPeriodic::NewL(CActive::EPriorityStandard);
+    iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
+
+#endif    
+ 	}
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+EXPORT_C void CApaAppList::InitializeApplistL(MApaAppListObserver* aObserver)
+    {
+    if(!iScr.Handle())
+        User::LeaveIfError(iScr.Connect());
+    
+    if(iScrAppInfo==NULL)
+        iScrAppInfo=CApaScrAppInfo::NewL(iScr, KNumAppEntriesFromSCR);
+    
+    iScrAppInfo->GetAllAppsInfoL();
+    
+    StartIdleUpdateL(aObserver);   
+    }
+
+
+void CApaAppList::InitializeLangAppListL()
+    {
+    if(!iScr.Handle())
+        User::LeaveIfError(iScr.Connect());
+    
+    if(iScrAppInfo==NULL) 
+        iScrAppInfo=CApaScrAppInfo::NewL(iScr, KNumAppEntriesFromSCR);
+    
+    iScrAppInfo->GetAllAppsInfoL();
+    
+    // set iIsLangChangePending=ETrue, to all the application present in the applist    
+    CApaAppData* appData=iAppData;    
+    while(appData)
+        {
+        appData->iIsLangChangePending=ETrue;
+        appData=appData->iNext;
+        }
+    }
+	
+	
+EXPORT_C void CApaAppList::UpdateApplistL(MApaAppListObserver* aObserver, RArray<TApaAppUpdateInfo>* aAppUpdateInfo, TUid aSecureID)
+    {
+    //If update applist is called by SWI, clear force registrations from applist.
+    if(aSecureID == KUidSisLaunchServer)
+        {
+        TInt count=iForceRegAppUids.Count();
+        for(TInt index=0; index<count; index++)
+            FindAndDeleteApp(iForceRegAppUids[index]);
+        iForceRegAppUids.Reset();
+        }
+    
+    if(aAppUpdateInfo->Count() == 0)
+        return;
+    
+    //If SCR connection is not valid then connect.
+    if(!iScr.Handle())
+        User::LeaveIfError(iScr.Connect());
+    
+    if(iScrAppInfo==NULL)
+        iScrAppInfo=CApaScrAppInfo::NewL(iScr, KNumAppEntriesFromSCR);
+    
+    iScrAppInfo->GetSpecificAppsInfoL(aAppUpdateInfo);
+    
+    if(IsIdleUpdateComplete())
+        StartIdleUpdateL(aObserver);   
+    }
+
+void CleanupAndDestroyAppInfoArray(TAny* aRPArray)
+    {
+    RPointerArray<Usif::CApplicationRegistrationData>* rpArray = (static_cast<RPointerArray<Usif::CApplicationRegistrationData>*>(aRPArray));
+    rpArray->ResetAndDestroy();
+    rpArray->Close();
+    }
+
+
+EXPORT_C void CApaAppList::UpdateApplistByForceRegAppsL(RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo)
+    {
+    //Get number of force registered application information.
+    TInt count=aForceRegAppsInfo.Count();
+    Usif::RSoftwareComponentRegistry scr;
+    User::LeaveIfError(scr.Connect());
+    CleanupClosePushL(scr);
+    
+    //As this function takes the ownership of aForceRegAppsInfo, this needs to be destroyed if any leave occurs.
+    TCleanupItem cleanup(CleanupAndDestroyAppInfoArray, &aForceRegAppsInfo); 
+    CleanupStack::PushL(cleanup);
+    
+    //Get each force registered application information and add it to applist.
+    for(TInt index=0; index<count; index++)
+        {
+        Usif::CApplicationRegistrationData* appInfo=aForceRegAppsInfo[index];
+        CApaAppData* appData = CApaAppData::NewL(*appInfo, iFs, scr);
+        TUid appUid=appInfo->AppUid();
+        
+        //Delete if the application already exist in the applist.
+        FindAndDeleteApp(appUid);
+        AddToList(appData);
+        //Maintain added force registered application uids so that it can be cleared from applist
+        //once installation complete.
+        iForceRegAppUids.AppendL(appUid);
+        }
+    
+    CleanupStack::PopAndDestroy(2); //cleanup, scr
+    }
+
+
+// The function transfers ownership of the pointer owned by a CApaAppList to the caller
+// to avoid copying the array.
+EXPORT_C  CArrayFixFlat<TApaAppUpdateInfo>* CApaAppList::UpdatedAppsInfo()
+{
+    CArrayFixFlat<TApaAppUpdateInfo>* updatedAppsInfo=iAppsUpdated;
+    iAppsUpdated=NULL;
+    return updatedAppsInfo;
+}
+
+#endif
 
 EXPORT_C void CApaAppList::StartIdleUpdateL(MApaAppListObserver* aObserver)
 /** Updates the list asynchronously, using an idle time active object 
@@ -327,7 +829,13 @@
 
 @param aObserver Observer to be notified when the update has finished. */
 	{
+    
+#if _DEBUG    
+    RDebug::Printf("[Apparc] *****************START CREATING APPLIST ****************************");
+#endif    
+    
 	DeleteAppsListBackUpAndTempFiles();
+	
 	TInt ret = KErrGeneral;
 #ifndef __WINS__ // on the emulator, don't read app list from file, as doing so means apps
                  // built while the emulator isn't running won't appear in the list
@@ -338,7 +846,12 @@
 		// There was an error during restore, so update the list asynchronously.
 		DeleteAppData();
 		iFs.Delete(iAppsListCacheFileName);
-		StartIdleUpdateL(aObserver);
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+		InitializeApplistL(aObserver);		
+#else
+        StartIdleUpdateL(aObserver);		
+#endif
+		
 		}
 	else
 		{
@@ -360,36 +873,6 @@
 	iAppIconLoader->Start();
 	}
 
-void CApaAppList::ScanRemovableDrivesAndUpdateL()
-/** Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, 
-     if the update scan on removable media drives does not change applist. */
-	{
-	const TArray<const TDriveUnitInfo> listOfRemovableMediaDrives = iAppRegFinder->DriveList();
-	const TInt count = listOfRemovableMediaDrives.Count();
-
-	// Removable media scan would take place only if removable drives are present.
-	if (count)
-		{
-		CApaAppData* appData = iAppData;
-		while (appData)
-			{
-			for (TInt driveIndex = 0; driveIndex < count; ++driveIndex)
-				{
-				if (TParsePtrC(*appData->iRegistrationFile).Drive() == listOfRemovableMediaDrives[driveIndex].iUnit.Name())
-					{
-					appData->SetAppPending();
-					break;
-					}
-				}
-			appData = appData->iNext;
-			}
-
-		while (IdleUpdateL())
-			{ // It updates the removable media apps present in AppList if it has changed.
-
-			};
-		}
-	}
 
 void CApaAppList::DeleteAppsListBackUpAndTempFiles()
 /** Deletes all files inside AppsListCache folder except AppsList.bin */
@@ -484,7 +967,7 @@
 			{
 			//Leave if the current version is different from the previous stored version and recreate applist.
 #ifdef _DEBUG
-			RDebug::Print(_L("!!Firmware update detected!! Rebuilding AppList"));
+			RDebug::Print(_L("[Apparc] !!Firmware update detected!! Rebuilding AppList"));
 #endif
 			User::Leave(KErrGeneral);
 			}
@@ -495,7 +978,7 @@
 		if (err != KErrPathNotFound && err != KErrNotFound)
 			{
 #ifdef _DEBUG
-			RDebug::Print(_L("!!Error %d reading Firmware version.  Rebuilding AppList"),err);
+			RDebug::Print(_L("[Apparc] !!Error %d reading Firmware version.  Rebuilding AppList"),err);
 #endif
 			User::Leave(err);
 			}
@@ -533,6 +1016,9 @@
 	// Close the stream;
 	CleanupStack::PopAndDestroy(&theReadStream);
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	iFlags |= ENotifyUpdateOnFirstScanComplete;
+#else
 	iFs.Rename(iAppsListCacheFileName, iAppsListCacheBackUpFileName);
 	iAppRegFinder->FindAllAppsL(CApaAppRegFinder::EScanRemovableDrives);	// Builds the Removable Media Drive List
 
@@ -540,6 +1026,7 @@
 
 	// It runs an update scan on removable media apps.
 	ScanRemovableDrivesAndUpdateL();
+#endif
 	}
 
 EXPORT_C TBool CApaAppList::IsLanguageChangePending() const
@@ -587,7 +1074,7 @@
 		else
 			iObserver->NotifyScanComplete();	// NotifyScanComplete will notify clients for scan complete.
 
-		iObserver=NULL;
+		//iObserver=NULL;
 		}
 	}
 
@@ -597,9 +1084,219 @@
 	iAppIdler=NULL;
 	}
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+// returns ETrue if there more application information avaialable.
+TInt CApaAppList::IdleUpdateL()
+    {
+
+    Usif::CApplicationRegistrationData* appInfo=NULL;
+    TApaAppUpdateInfo::TApaAppAction action=TApaAppUpdateInfo::EAppPresent; //to make compiler happy. Actual value is assigned by GetNextApplicationInfo
+    TUid appUid;
+    
+    //Ownership of appInfo is transfered to this function.
+    appUid=iScrAppInfo->GetNextApplicationInfo(action,appInfo);
+    
+    if(appUid==KNullUid) 
+        return EFalse;
+    
+    CleanupStack::PushL(appInfo);
+    CApaAppData *appData=NULL;    
+    CApaAppData* app = NULL;
+    
+    switch(action)
+        {
+        case TApaAppUpdateInfo::EAppNotPresent:
+            if(appInfo==NULL)
+                {
+                TInt ret=FindAndDeleteApp(appUid);
+                if(ret==KErrNone)
+                    iFlags |= EAppListHasChanged;
+
+                //Add uninstalled application UID to a list
+                if(iUninstalledApps==NULL)
+                    iUninstalledApps=new(ELeave) CArrayFixFlat<TUid>(1);
+                
+                iUninstalledApps->AppendL(appUid);
+                }
+            break;
+            
+        case TApaAppUpdateInfo::EAppPresent:
+            // holds the application information from Applist
+            app = AppDataByUid(appInfo->AppUid());
+            
+            if( app && IsLanguageChangePending() && (iScrAppInfo->GetSCRFetchAction() == EGetAllAppsInfo))
+                {
+                //Application needs to be updated because of language change
+                RPointerArray<Usif::CLocalizableAppInfo> localisationInfo;
+                localisationInfo=appInfo->LocalizableAppInfoList();
+                ASSERT(!(localisationInfo.Count()>1));
+                
+                if((localisationInfo.Count()>0) && (app->ApplicationLanguage() != localisationInfo[0]->ApplicationLanguage()))
+                    {
+                    // holds the application information read from SCR db
+                    appData=CApaAppData::NewL(*appInfo, iFs, iScr);    
+                    FindAndDeleteApp(appUid);
+                    AddToList(appData);  
+                    iFlags |= EAppListHasChanged;
+                    }
+                else
+                    {
+                    app->iIsLangChangePending=EFalse;                
+                    }
+                }
+            else
+                {
+                // holds the application information read from SCR db
+                appData=CApaAppData::NewL(*appInfo, iFs, iScr);
+                if(app)
+                    {
+                    //Application found in applist. Delete existing application information from applist and create new
+                    //application information object and add to the applist.
+                    FindAndDeleteApp(appUid);
+                    AddToList( appData );
+                    }
+                else
+                    {
+                    AddToList( appData );                   
+                    }
+                iFlags |= EAppListHasChanged;
+                }
+            
+            break;
+            
+        case TApaAppUpdateInfo::EAppInfoChanged:
+            appData=CApaAppData::NewL(*appInfo, iFs, iScr);
+            //Delete existing application information from applist and create new application information object and 
+            //add to the applist.
+            FindAndDeleteApp(appUid);
+            AddToList( appData );
+            iFlags |= EAppListHasChanged;
+            break;
+        }
+
+    //If first scan not complete or if phone language is changed then clear the updated application list
+    //Otherwise add application updated apps list
+    if(!(iFlags&EFirstScanComplete) || (iFlags&ELangChangePending))
+        {
+        if(!iAppsUpdated)
+            delete iAppsUpdated;
+        iAppsUpdated=NULL;
+        }
+    else
+        {
+        if(!iAppsUpdated)
+            iAppsUpdated= new(ELeave) CArrayFixFlat<TApaAppUpdateInfo>(1);
+    
+        TApaAppUpdateInfo appUpdateInfo(appUid, action);
+        iAppsUpdated->AppendL(appUpdateInfo);
+        }
+    
+    CleanupStack::PopAndDestroy(appInfo); 
+    return ETrue;
+    }
+
+
+
+/*
+ * Finds and delete an application from applist.
+ */
+TInt CApaAppList::FindAndDeleteApp(TUid aAppUid)
+    {
+    CApaAppData* appData=iAppData;
+    CApaAppData* prevAppData=NULL;
+    
+    while(appData && appData->iUidType[2] != aAppUid)
+        {
+        prevAppData=appData;
+        appData=appData->iNext;
+        }
+
+    if(appData)
+        {
+        if(prevAppData)
+            {
+            //If the application position is not the first application in the list
+            prevAppData->iNext=appData->iNext;
+            }
+        else
+            {
+            //If the application position is first in the list
+            iAppData=appData->iNext;
+            }
+
+#if _DEBUG  
+        if(appData)
+            {
+            RDebug::Print(_L("[Apparc] Application with UID: %X is deleted from applist"), appData->iUidType[2]);
+            }
+#endif
+
+        delete appData;
+        return(KErrNone);
+        }
+
+    //if application not found, return KErrNotFound
+    return(KErrNotFound);
+    }
+
+/**
+@internalComponent
+*/
+EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(TUid aAppUid)
+    {
+    Usif::RSoftwareComponentRegistry scrCon;
+	//If SCR connection not avaialable then connect to SCR. Otherwise use the 
+	//existing connection.
+    if(!iScr.Handle())
+        {
+        User::LeaveIfError(scrCon.Connect());
+        CleanupClosePushL(scrCon);
+        }
+    else
+        scrCon=iScr;
+  
+    
+    //Pass 1 as number of entries to fetch from SCR as only specific application information is required.
+    CApaScrAppInfo *scrAppInfo=CApaScrAppInfo::NewL(scrCon, 1); 
+    CleanupStack::PushL(scrAppInfo);
+
+    RArray<TApaAppUpdateInfo>* appUpdateInfoList=new (ELeave) RArray<TApaAppUpdateInfo>(1);
+    CleanupStack::PushL(appUpdateInfoList);
+    TApaAppUpdateInfo appUpdateInfo(aAppUid, TApaAppUpdateInfo::EAppPresent) ;
+    appUpdateInfoList->AppendL(appUpdateInfo);
+
+    scrAppInfo->GetSpecificAppsInfoL(appUpdateInfoList);
+    CleanupStack::Pop(appUpdateInfoList);
+    
+    Usif::CApplicationRegistrationData* appInfo=NULL;
+    TApaAppUpdateInfo::TApaAppAction action;
+    TUid uid;
+    uid=scrAppInfo->GetNextApplicationInfo(action, appInfo);
+    CleanupStack::PushL(appInfo);
+
+    CApaAppData *appData=NULL;
+    if(appInfo)
+        {
+        appData=CApaAppData::NewL(*appInfo, iFs, scrCon);
+        FindAndDeleteApp(uid);
+        AddToList(appData);
+        iFlags |= EAppListHasChanged;
+        }
+    CleanupStack::PopAndDestroy(2, scrAppInfo);
+    
+	//If SCR session established in this function, then close it.
+    if(!iScr.Handle())
+        CleanupStack::PopAndDestroy();
+        
+    return appData;
+    }
+
+#else
 TInt CApaAppList::IdleUpdateL()
 // returns ETrue if there is more scanning to be done.
 	{
+    
 	TBool more=EFalse;
 	TApaAppEntry currentApp = TApaAppEntry();
 	TRAPD(err, more = iAppRegFinder->NextL(currentApp, *iForcedRegistrations));
@@ -635,6 +1332,205 @@
 	return more;
 	}
 
+void CApaAppList::UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged)
+    {
+    CApaAppData* appData=AppDataByUid(aAppEntry.iUidType[2]);
+    if (appData==NULL)
+        {// not in list, so add it at the start
+        TRAPD(err,appData=CApaAppData::NewL(aAppEntry, iFs));
+        if (err==KErrNone)
+            {
+            AddToList( appData );
+            aHasChanged=ETrue;
+            }
+        }
+    else if (appData->IsPending())
+        { // not found yet during current scan - we may need to override this one
+        
+        // On a system which scans for registration .RSC files (V2 apps) first, followed by
+        // .APP files (V1 apps), it's valid for a V1 app to override a V2 app (if the V2 app
+        // has just been removed). If this is the case, assume it's ok to compare the V1 .APP filename,
+        // with the V2 .RSC filename as their filenames will never match (which is what we want in this case).
+        TPtrC currentFileName;
+        if (appData->RegistrationFileUsed())
+            currentFileName.Set(*appData->iRegistrationFile);
+        else
+            currentFileName.Set(*appData->iFullName);
+    
+        if (aAppEntry.iFullName.CompareF(currentFileName)!=0)
+            {
+            delete appData->iSuccessor;
+            appData->iSuccessor = NULL;
+            appData->iSuccessor = CApaAppEntry::NewL(aAppEntry);
+
+            appData->iIsPresent = CApaAppData::ESuperseded;
+            aHasChanged=ETrue;
+            }
+        else
+            {
+            if (appData->Update() || appData->iIsPresent==CApaAppData::ENotPresentPendingUpdate) 
+                aHasChanged=ETrue; 
+
+            appData->iIsPresent = CApaAppData::EIsPresent;
+            }
+        }
+    }
+
+void CApaAppList::SetPending(CApaAppData* aAppData)
+    // set all apps to pending update - we'll find them again as we scan
+    {
+    for (; aAppData; aAppData = aAppData->iNext)
+        aAppData->SetAppPending();
+    }
+
+void CApaAppList::SetNotFound(CApaAppData* aAppData, TBool& aHasChanged)
+    // mark any unfound apps not present
+    {
+    while (aAppData)
+        {
+        if (aAppData->IsPending())
+            {
+            aAppData->iIsPresent = CApaAppData::ENotPresent;
+            aHasChanged = ETrue;
+            }
+        aAppData = aAppData->iNext;
+        }
+    }
+
+EXPORT_C void CApaAppList::PurgeL()
+/** Removes any applications from the list if they are no longer present 
+on the phone. It updates applications that have been 
+superceded. */
+    {
+    CApaAppData* appData=iAppData;
+    CApaAppData* prev=NULL;
+    while (appData)
+        {
+        CApaAppData* next=appData->iNext;
+        if (appData->iIsPresent==CApaAppData::ENotPresent)
+            {
+            if (prev)
+                prev->iNext=next;
+            else
+                iAppData=next;
+            
+            //Add uninstalled application UID to a list
+            if(iUninstalledApps==NULL)
+                iUninstalledApps=new(ELeave) CArrayFixFlat<TUid>(1);
+            
+            iUninstalledApps->AppendL(appData->AppEntry().iUidType[2]);
+            
+            delete appData;
+            }
+        else if (appData->iIsPresent==CApaAppData::ESuperseded)
+            {
+            CApaAppData* newApp=NULL;
+            TApaAppEntry appEntry;
+            appData->iSuccessor->Get(appEntry);
+            TRAPD(err,newApp=CApaAppData::NewL(appEntry, iFs));
+            if (err==KErrNone)
+                {
+                // remove the old one and add the new one in its place
+                if (prev)
+                    prev->iNext=newApp;
+                else
+                    iAppData=newApp;
+        
+                newApp->iNext = appData->iNext;
+                delete appData;
+                // increment the iterator
+                prev = newApp;
+                }
+            }
+        else
+            prev=appData;
+        
+        appData=next;
+        }
+    }
+
+void CApaAppList::ScanRemovableDrivesAndUpdateL()
+/** Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, 
+     if the update scan on removable media drives does not change applist. */
+    {
+    const TArray<const TDriveUnitInfo> listOfRemovableMediaDrives = iAppRegFinder->DriveList();
+    const TInt count = listOfRemovableMediaDrives.Count();
+
+    // Removable media scan would take place only if removable drives are present.
+    if (count)
+        {
+        CApaAppData* appData = iAppData;
+        while (appData)
+            {
+            for (TInt driveIndex = 0; driveIndex < count; ++driveIndex)
+                {
+                if (TParsePtrC(*appData->iRegistrationFile).Drive() == listOfRemovableMediaDrives[driveIndex].iUnit.Name())
+                    {
+                    appData->SetAppPending();
+                    break;
+                    }
+                }
+            appData = appData->iNext;
+            }
+
+        while (IdleUpdateL())
+            { // It updates the removable media apps present in AppList if it has changed.
+
+            };
+        }
+    }
+
+void CApaAppList::UndoSetPending(CApaAppData* aAppData)
+    // Reset all apps to pevious pending state so they don't get purged
+    {
+    for (; aAppData; aAppData = aAppData->iNext)
+        {
+        if (aAppData->iIsPresent == CApaAppData::EPresentPendingUpdate)
+            {
+            aAppData->iIsPresent = CApaAppData::EIsPresent;
+            }
+        }
+    }
+
+/**
+@internalComponent
+*/
+EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid)
+    {
+//Scans and adds the specified application to the app list if found
+  __ASSERT_DEBUG(aFinder, Panic(EPanicNullPointer));
+  TBool found = EFalse;
+  TApaAppEntry appEntry;
+  aFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
+  while (aFinder->NextL(appEntry, *iForcedRegistrations))
+      {
+      if (appEntry.iUidType[2] == aAppUid)
+          {
+          found = ETrue;
+          break;
+          }
+      }
+  
+  CApaAppData* app = NULL;
+  if (found)
+      {
+      // add the app to the list
+      TBool hasChanged = EFalse;
+      CApaAppData* prevFirstAppInList = iAppData;
+      UpdateNextAppL(appEntry, hasChanged);
+      if (iAppData != prevFirstAppInList)
+          app = iAppData;     // assume the new app was added to the list
+
+      if (hasChanged)
+          iFlags |= EAppListHasChanged;
+      }
+
+  return app;
+    return NULL;
+    }
+
+#endif
+
 EXPORT_C TBool CApaAppList::IsIdleUpdateComplete() const
 /** Tests whether an asynchronous update of the list is currently in progress.
 
@@ -644,165 +1540,19 @@
 	return iAppIdler == NULL;
 	}
 
-void CApaAppList::SetPending(CApaAppData* aAppData)
-	// set all apps to pending update - we'll find them again as we scan
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		aAppData->SetAppPending();
-	}
-
-void CApaAppList::SetNotFound(CApaAppData* aAppData, TBool& aHasChanged)
-	// mark any unfound apps not present
-	{
-	while (aAppData)
-		{
-		if (aAppData->IsPending())
-			{
-			aAppData->iIsPresent = CApaAppData::ENotPresent;
-			aHasChanged = ETrue;
-			}
-		aAppData = aAppData->iNext;
-		}
-	}
 
 void CApaAppList::AddToList( CApaAppData* aAppData )
 	{
 	__ASSERT_DEBUG(aAppData, Panic(EPanicNullPointer));
 	aAppData->iNext=iAppData;
 	iAppData=aAppData;
-	}
-
-void CApaAppList::UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged)
-	{
-	CApaAppData* appData=AppDataByUid(aAppEntry.iUidType[2]);
-	if (appData==NULL)
-		{// not in list, so add it at the start
-		TRAPD(err,appData=CApaAppData::NewL(aAppEntry, iFs));
-		if (err==KErrNone)
-			{
-			AddToList( appData );
-			aHasChanged=ETrue;
-			}
-		}
-	else if (appData->IsPending())
-		{ // not found yet during current scan - we may need to override this one
-		
-		// On a system which scans for registration .RSC files (V2 apps) first, followed by
-		// .APP files (V1 apps), it's valid for a V1 app to override a V2 app (if the V2 app
-		// has just been removed). If this is the case, assume it's ok to compare the V1 .APP filename,
-		// with the V2 .RSC filename as their filenames will never match (which is what we want in this case).
-		TPtrC currentFileName;
-		if (appData->RegistrationFileUsed())
-			currentFileName.Set(*appData->iRegistrationFile);
-		else
-			currentFileName.Set(*appData->iFullName);
 	
-		if (aAppEntry.iFullName.CompareF(currentFileName)!=0)
-			{
-			delete appData->iSuccessor;
-			appData->iSuccessor = NULL;
-			appData->iSuccessor = CApaAppEntry::NewL(aAppEntry);
-
-			appData->iIsPresent = CApaAppData::ESuperseded;
-			aHasChanged=ETrue;
-			}
-		else
-			{
-			if (appData->Update() || appData->iIsPresent==CApaAppData::ENotPresentPendingUpdate) 
-				aHasChanged=ETrue; 
-
-			appData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
+#if _DEBUG	
+    RDebug::Print(_L("[Apparc] Application with UID: %X is added to applist"), aAppData->iUidType[2]);
+#endif
+    
 	}
 
-/**
-@internalComponent
-*/
-EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid)
-	{
-//Scans and adds the specified application to the app list if found
-	__ASSERT_DEBUG(aFinder, Panic(EPanicNullPointer));
-	TBool found = EFalse;
-	TApaAppEntry appEntry;
-	aFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
-	while (aFinder->NextL(appEntry, *iForcedRegistrations))
-		{
-		if (appEntry.iUidType[2] == aAppUid)
-			{
-			found = ETrue;
-			break;
-			}
-		}
-	
-	CApaAppData* app = NULL;
-	if (found)
-		{
-		// add the app to the list
-		TBool hasChanged = EFalse;
-		CApaAppData* prevFirstAppInList = iAppData;
-		UpdateNextAppL(appEntry, hasChanged);
-		if (iAppData != prevFirstAppInList)
-			app = iAppData;		// assume the new app was added to the list
-
-		if (hasChanged)
-			iFlags |= EAppListHasChanged;
-		}
-
-	return app;
-	}
-
-EXPORT_C void CApaAppList::PurgeL()
-/** Removes any applications from the list if they are no longer present 
-on the phone. It updates applications that have been 
-superceded. */
-	{
-	CApaAppData* appData=iAppData;
-	CApaAppData* prev=NULL;
-	while (appData)
-		{
-		CApaAppData* next=appData->iNext;
-		if (appData->iIsPresent==CApaAppData::ENotPresent)
-			{
-			if (prev)
-				prev->iNext=next;
-			else
-				iAppData=next;
-			
-            //Add uninstalled application UID to a list
-            if(iUninstalledApps==NULL)
-                iUninstalledApps=new(ELeave) CArrayFixFlat<TUid>(1);
-            
-            iUninstalledApps->AppendL(appData->AppEntry().iUidType[2]);
-			
-			delete appData;
-			}
-		else if (appData->iIsPresent==CApaAppData::ESuperseded)
-			{
-			CApaAppData* newApp=NULL;
-			TApaAppEntry appEntry;
-			appData->iSuccessor->Get(appEntry);
-			TRAPD(err,newApp=CApaAppData::NewL(appEntry, iFs));
-			if (err==KErrNone)
-				{
-				// remove the old one and add the new one in its place
-				if (prev)
-					prev->iNext=newApp;
-				else
-					iAppData=newApp;
-		
-				newApp->iNext = appData->iNext;
-				delete appData;
-				// increment the iterator
-				prev = newApp;
-				}
-			}
-		else
-			prev=appData;
-		
-		appData=next;
-		}
-	}
 
 EXPORT_C TInt CApaAppList::Count() const
 /** Gets the count of applications present in the app list.
@@ -841,7 +1591,7 @@
 specified screen mode. */
 	{
 
-	CApaAppData* appData=iValidFirstAppData;
+	CApaAppData* appData=iAppData;
 
 	if(aScreenMode!=KIgnoreScreenMode)
 		{
@@ -935,6 +1685,7 @@
 	return NULL;
 	}
 	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
 Adds a registration file to the iForcedRegistrations array.
 
@@ -954,6 +1705,7 @@
 	if(iForcedRegistrations)
 		iForcedRegistrations->Reset();
 	}
+#endif
 
 /** Finds the preferred application to handle the specified data type.
 
@@ -1047,7 +1799,19 @@
 		iObserver->InitialListPopulationComplete();
 	iValidFirstAppData = iAppData;
 	iFlags|=EFirstScanComplete;
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  	
 	iNNAInstallation = EFalse;
+#endif
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+	delete iScrAppInfo;
+	iScrAppInfo=NULL;
+    iScr.Close();
+#endif
+#if _DEBUG    
+    RDebug::Printf("[Apparc] *****************END CREATING APPLIST ****************************");
+#endif    
 	}
 
 /**
@@ -1080,8 +1844,10 @@
 
 	if (app)
 		{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		if (!app->RegistrationFileUsed())
 			User::Leave(KErrNotSupported);
+#endif		
 
 		if (app->iServiceArray)
 			{
@@ -1111,9 +1877,12 @@
 
 	if (app)
 		{
+	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		if (!app->RegistrationFileUsed())
 			User::Leave(KErrNotSupported);
-
+#endif
+		
 		if (app->iServiceArray)
 			{
 			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
@@ -1149,8 +1918,10 @@
 
 	if (app)
 		{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		if (!app->RegistrationFileUsed())
 			User::Leave(KErrNotSupported);
+#endif		
 
 		if (app->iServiceArray)
 			{
@@ -1704,6 +2475,9 @@
 		{		
 		iPrevLanguage = User::Language();
 		iAppList.iFlags |= CApaAppList::ELangChangePending;
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK		
+		iAppList.InitializeLangAppListL();
+#endif
 		iAppList.StartIdleUpdateL(iAppList.iObserver);
 		}
 	}
--- a/appfw/apparchitecture/aplist/aplapplist.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplapplist.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -27,6 +27,12 @@
 #include <badesca.h>
 #include <s32file.h>
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <usif/scr/scr.h>
+#include <usif/scr/appregentries.h>
+#include <apgcli.h>
+#endif
+
 // classes defined:
 class CApaAppList;
 class CApaAppViewData;
@@ -34,7 +40,9 @@
 class CApaMaskedBitmap;
 class TEntry;
 class RFs;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 class CApaAppRegFinder;
+#endif
 class CApaAppIconArray;
 class CApaIconLoader;
 class TApaAppEntry;
@@ -72,19 +80,26 @@
 */
 class CApaAppList : public CBase
 	{
-public: 
-	IMPORT_C static CApaAppList* NewL(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aTimeoutDelay = 50000); // takes ownership of aAppRegFinder
 public:
+    IMPORT_C static CApaAppList* NewL(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aTimeoutDelay = 50000); 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	IMPORT_C void PurgeL();
+    IMPORT_C CApaAppData* FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid);	
+    IMPORT_C void StopScan(TBool aNNAInstall = EFalse);
+    IMPORT_C void RestartScanL(); 
+    IMPORT_C TBool AppListUpdatePending();    
+    IMPORT_C void AddForcedRegistrationL(const TDesC& aRegistrationFile);
+    IMPORT_C void ResetForcedRegistrations();
+#else
+    IMPORT_C CApaAppData* FindAndAddSpecificAppL(TUid aAppUid);    
+#endif
+    
 	IMPORT_C TInt Count() const;
 	IMPORT_C CApaAppData* FirstApp() const;
 	IMPORT_C CApaAppData* FirstApp(TInt aScreenMode) const; 
 	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp) const;
 	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp, TInt aScreenMode) const;
 	IMPORT_C CApaAppData* AppDataByUid(TUid aAppUid) const;
-	IMPORT_C void StopScan(TBool aNNAInstall = EFalse);
-	IMPORT_C void RestartScanL();
-	IMPORT_C TBool AppListUpdatePending();
 	// ER5
 	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType) const;
 	IMPORT_C void StartIdleUpdateL();
@@ -99,15 +114,12 @@
 	IMPORT_C CBufFlat* ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const;	
 	IMPORT_C CBufFlat* ServiceUidBufferL(TUid aAppUid) const;
 	IMPORT_C CBufFlat* ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const;
-	IMPORT_C CApaAppData* FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid);
 	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, 
 		TInt& aPriority) const;
 	IMPORT_C ~CApaAppList();
 	// 9.1
 	IMPORT_C CApaAppData* AppDataByFileName(const TDesC& aFullFileName) const;
 	/*IMPORT_C*/ RFs& ShareProtectedFileServer();
-	IMPORT_C void AddForcedRegistrationL(const TDesC& aRegistrationFile);
-	IMPORT_C void ResetForcedRegistrations();
 	IMPORT_C TBool IsLanguageChangePending() const;
 	IMPORT_C static CApaAppList* Self();
     IMPORT_C CArrayFixFlat<TUid>* UninstalledAppArray();
@@ -125,6 +137,15 @@
 	IMPORT_C void AddCustomAppInfoInListL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption);
 	IMPORT_C void UpdateAppListByShortCaptionL();
 	IMPORT_C void UpdateAppListByIconCaptionOverridesL();
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	IMPORT_C void InitializeApplistL(MApaAppListObserver* aObserver);
+	void InitializeLangAppListL();
+	IMPORT_C void UpdateApplistL(MApaAppListObserver* aObserver, RArray<TApaAppUpdateInfo>* aAppUpdateInfo, TUid aSecureID);
+	IMPORT_C void UpdateApplistByForceRegAppsL(RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo);
+	IMPORT_C CArrayFixFlat<TApaAppUpdateInfo>* UpdatedAppsInfo();
+#endif
+	
 private:
 	enum
 		{
@@ -134,15 +155,11 @@
 		ELangChangePending = 0x08 // This flag is used to check if applist update is in progress on language change event.
 		};
 private:
-	CApaAppList(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay);
-	void UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged);
+    CApaAppList(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay); 
 	void AddToList( CApaAppData* aAppData );
-	static void SetPending(CApaAppData* aAppData);
-	static void SetNotFound(CApaAppData* aAppData, TBool& aHasChanged);
 	static TInt IdleUpdateCallbackL(TAny* aObject);
 	TInt IdleUpdateL();
 	void ScanComplete();
-	void UndoSetPending(CApaAppData* aAppData);
 
 	void StopIdler();
 	void DeleteAppData();
@@ -154,6 +171,16 @@
 	void DeleteAppsListBackUpAndTempFiles();
 	void ScanRemovableDrivesAndUpdateL();
 	void CreateDefaultAppIconFileNameL();
+	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    void UndoSetPending(CApaAppData* aAppData);
+    static void SetPending(CApaAppData* aAppData);
+    static void SetNotFound(CApaAppData* aAppData, TBool& aHasChanged);
+    void UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged);
+#else
+    TInt FindAndDeleteApp(TUid aAppUid);
+#endif
+    
 private: 
 	// Persistence Layer
 	void RestoreL();
@@ -236,13 +263,18 @@
 	MApaAppListObserver* iObserver;
 	CApaAppData* iValidFirstAppData; //First valid app data in linked list!
 	TInt iFlags;
-	CApaAppRegFinder* iAppRegFinder;
-	TInt iIdlePeriodicDelay; 	// idle timeout periodic delay
+	TInt iIdlePeriodicDelay;    // idle timeout periodic delay	
 	RFs iFsShareProtected;
 	mutable CApaAppIconArray* iDefaultIconArray;
 	mutable TInt iDefaultIconUsageCount;
-	CDesCArray* iForcedRegistrations;
 	class CApaLangChangeMonitor; //inner class of CApaAppList.
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+	class CApaScrAppInfo;
+#else
+   CDesCArray* iForcedRegistrations;
+#endif
+	
 	CApaLangChangeMonitor* iAppLangMonitor; // Active Object used for language change monitoring.		
 
 	RBuf iAppsListCacheFileName;
@@ -256,8 +288,17 @@
 	RPointerArray<CCustomAppInfoData> iCustomAppList;
 	CApaIconCaptionOverrides* iIconCaptionOverrides;
 	CApaIconCaptionCenrepObserver* iIconCaptionObserver;
-	TBool iNNAInstallation;	
-    CArrayFixFlat<TUid>* iUninstalledApps; 	
+    CArrayFixFlat<TUid>* iUninstalledApps;
+    
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
+    Usif::RSoftwareComponentRegistry iScr;
+    CApaScrAppInfo *iScrAppInfo;
+    RArray<TUid> iForceRegAppUids;
+    CArrayFixFlat<TApaAppUpdateInfo>* iAppsUpdated;
+#else
+    CApaAppRegFinder* iAppRegFinder;
+    TBool iNNAInstallation; 
+#endif
     
 private:
 	friend class CApaLangChangeMonitor;
--- a/appfw/apparchitecture/aplist/aplapplistitem.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplapplistitem.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -25,6 +25,9 @@
 #include "aplappinforeader.h"
 #include <e32uid.h>
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <usif/scr/appregentries.h>
+#endif
 
 // Delays in the pseudo idle object that builds the application list
 //
@@ -233,43 +236,196 @@
 // Class CApaAppData
 //
 
-EXPORT_C CApaAppData* CApaAppData::NewL(const TApaAppEntry& aAppEntry, RFs& aFs)
-	{
-	CApaAppData* self=new(ELeave) CApaAppData(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aAppEntry);
-	CleanupStack::Pop(); // self
-	return self;
-	}
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+CApaAppData::CApaAppData(RFs& aFs)
+    :iCaption(NULL), iShortCaption(NULL), 
+    iFs(aFs),
+    iNonMbmIconFile(EFalse),
+    iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
+    iShortCaptionFromResourceFile(NULL)
+    {
+    }
+EXPORT_C CApaAppData* CApaAppData::NewL(const Usif::CApplicationRegistrationData& aAppInfo, RFs& aFs, const Usif::RSoftwareComponentRegistry& aScrCon)
+    {
+    CApaAppData* self=new(ELeave) CApaAppData(aFs);
+    CleanupStack::PushL(self);
+    self->ConstructL(aAppInfo, aScrCon);
+    CleanupStack::Pop(self); // self
+    return self;
+    }
+
+void CApaAppData::ConstructL(const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScrCon)
+    {
+    iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
+    iIcons = CApaAppIconArray::NewL();
+    iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
+    iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
+    User::LeaveIfError(ReadApplicationInformationFromSCRL(aAppInfo, aScrCon));   
+    }
+
+//Initializes the CApaAppData object with information read from SCR. Leaves if any error occurs during initialization.
+
+TInt CApaAppData::ReadApplicationInformationFromSCRL(const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScrCon)
+    {
+    HBufC* caption = NULL;
+    HBufC* shortCaption = NULL;
+
+    CApaAppInfoReader* appInfoReader = NULL;
+    appInfoReader = CApaAppInfoReader::NewL(iFs, aAppInfo, aScrCon); 
+    CleanupStack::PushL(appInfoReader);
+    TBool readSuccessful=EFalse;
+    readSuccessful= appInfoReader->ReadL();
+    
+    iFullName=appInfoReader->AppBinaryFullName();
+    
+    iUidType = appInfoReader->AppBinaryUidType();
+
+    caption = appInfoReader->Caption();
+    shortCaption = appInfoReader->ShortCaption();
+
+    CApaAppIconArray* icons = appInfoReader->Icons();
+    if(icons)
+        {
+        delete iIcons;
+        iIcons = icons;
+        iIconLoader = appInfoReader->IconLoader();
+        }
+    else
+        {           
+        TRAPD(err, icons = CApaAppIconArray::NewL());
+        if(err == KErrNone)
+            {
+            delete iIcons;
+            iIcons = icons;
+            }
+        }
+        
+               
+    iOpaqueData = appInfoReader->OpaqueData();
+
+    if (readSuccessful)
+        {
+        appInfoReader->Capability(iCapabilityBuf);
+
+        iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
 
+        delete iIconFileName;
+        iIconFileName = appInfoReader->IconFileName();
+        iNonMbmIconFile = appInfoReader->NonMbmIconFile();
+        iNumOfAppIcons = appInfoReader->NumOfAppIcons();
+        iApplicationLanguage = appInfoReader->AppLanguage();
+                
+        // views
+        iViewDataArray->ResetAndDestroy();
+        CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
+        if (viewDataArray)
+            {
+            delete iViewDataArray;
+            iViewDataArray = viewDataArray;
+            
+            if(!iIconLoader && ViewMbmIconsRequireLoading())
+                {
+                //if VIEW_DATA contains a MBM icon we need to initialize iIconLoader
+                iIconLoader = appInfoReader->IconLoader();
+                }
+            }
+
+            // owned files
+            iOwnedFileArray->Reset();
+            CDesCArray* const ownedFileArray = appInfoReader->OwnedFiles();
+            if (ownedFileArray)
+                {
+                delete iOwnedFileArray;
+                iOwnedFileArray = ownedFileArray;
+                }
+            
+            UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
+            }
+
+    CleanupStack::PopAndDestroy(appInfoReader);
+
+    if (!caption)
+        {
+        TParsePtrC parse (*iFullName);
+        caption = parse.Name().Alloc();
+        }
+
+    // Put the captions into place
+    if (caption)
+        {
+        if (!shortCaption)
+            {
+            shortCaption = caption->Alloc();
+            if (!shortCaption)
+                {
+                delete caption;
+                caption = NULL;
+                }
+            }
+
+        delete iCaption;
+        iCaption = caption;
+        delete iShortCaption;
+        iShortCaption = shortCaption;
+        }
+    
+    return caption ? KErrNone : KErrNoMemory;
+    }
+
+
+EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
+/** @internalComponent */
+    {
+    if (iCapabilityBuf().iAttributes & TApaAppCapability::ENonNative)
+        return iUidType[1];
+    else
+        return TUid::Null();
+    }
+
+EXPORT_C TBool CApaAppData::IsLangChangePending()
+{
+    return iIsLangChangePending;
+}
+
+#else
 CApaAppData::CApaAppData(RFs& aFs)
-	:iCaption(NULL), iShortCaption(NULL), 
-	iIsPresent(CApaAppData::EIsPresent), iFs(aFs),
-	iNonMbmIconFile(EFalse),
-	iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
-	iNonNativeApplicationType(TUid::Null()),
-	iShortCaptionFromResourceFile(NULL)
-	{
-	}
+    :iCaption(NULL), iShortCaption(NULL), 
+    iIsPresent(CApaAppData::EIsPresent), iFs(aFs),
+    iNonMbmIconFile(EFalse),
+    iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
+    iNonNativeApplicationType(TUid::Null()),
+    iShortCaptionFromResourceFile(NULL)
+    {
+    }
+
+EXPORT_C CApaAppData* CApaAppData::NewL(const TApaAppEntry& aAppEntry, RFs& aFs)
+    {
+    CApaAppData* self=new(ELeave) CApaAppData(aFs);
+    CleanupStack::PushL(self);
+    self->ConstructL(aAppEntry);
+    CleanupStack::Pop(); // self
+    return self;
+    }
 
 void CApaAppData::ConstructL(const TApaAppEntry& aAppEntry)
-	{
-	iUidType = aAppEntry.iUidType; // if the 2nd UID is KUidAppRegistrationFile, iUidType will be updated in ReadApplicationInformationFromResourceFiles() to reflect the TUidType for the application binary
-	if (ApaUtils::TypeUidIsForRegistrationFile(aAppEntry.iUidType))
-		{
-		iRegistrationFile = aAppEntry.iFullName.AllocL();
-		}
-	else
-		{
-		iFullName = aAppEntry.iFullName.AllocL();
-		}
+    {
+    iUidType = aAppEntry.iUidType; // if the 2nd UID is KUidAppRegistrationFile, iUidType will be updated in ReadApplicationInformationFromResourceFiles() to reflect the TUidType for the application binary
 
-	iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
-	iIcons = CApaAppIconArray::NewL();
-	iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
-	iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
-	User::LeaveIfError(ReadApplicationInformationFromResourceFiles());
-	}
+    if (ApaUtils::TypeUidIsForRegistrationFile(aAppEntry.iUidType))
+        {
+        iRegistrationFile = aAppEntry.iFullName.AllocL();
+        }
+    else
+        {
+        iFullName = aAppEntry.iFullName.AllocL();
+        }
+    
+    iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
+    iIcons = CApaAppIconArray::NewL();
+    iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
+    iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
+    User::LeaveIfError(ReadApplicationInformationFromResourceFiles());    
+    }
 
 // Return a standard error code
 // The value returned only reflect the caption status
@@ -281,172 +437,330 @@
 // 2. Be very careful in this method, because it can be called on a newly constructed object,
 //    or on an existing object, so don't assume member data pointers will be NULL
 TInt CApaAppData::ReadApplicationInformationFromResourceFiles()
-	{
-	HBufC* caption = NULL;
-	HBufC* shortCaption = NULL;
+    {
+    HBufC* caption = NULL;
+    HBufC* shortCaption = NULL;
+
+    iTimeStamp = TTime(0); // cannot init in constructor because this function can be called on an existing CApaAppData object
 
-	iTimeStamp = TTime(0); // cannot init in constructor because this function can be called on an existing CApaAppData object
+    if(iRegistrationFile)
+        {
+        CApaAppInfoReader* appInfoReader = NULL;
+        TRAP_IGNORE(appInfoReader = CApaAppInfoReader::NewL(iFs, *iRegistrationFile, iUidType[2])); 
+        if (!appInfoReader)
+            {
+            if (!iFullName)
+                {
+                // assume that if iFullName is NULL, this method has been called as part
+                // of constructing a new app data object. The CApaAppInfoReader derived object
+                // could not be created, therefore we have no way to determine the full filename
+                // of the app binary, so give up
+                return KErrNoMemory;
+                }
+            }
+        else
+            {
+            TBool readSuccessful=EFalse;
+            TRAP_IGNORE(readSuccessful= appInfoReader->ReadL());
 
-	if(iRegistrationFile)
-		{
-		CApaAppInfoReader* appInfoReader = NULL;
-		TRAP_IGNORE(appInfoReader = CApaAppInfoReader::NewL(iFs, *iRegistrationFile, iUidType[2]));	
-		if (!appInfoReader)
-			{
-			if (!iFullName)
-				{
-				// assume that if iFullName is NULL, this method has been called as part
-				// of constructing a new app data object. The CApaAppInfoReader derived object
-				// could not be created, therefore we have no way to determine the full filename
-				// of the app binary, so give up
-				return KErrNoMemory;
-				}
-			}
-		else
-			{
-			TBool readSuccessful=EFalse;
-			TRAP_IGNORE(readSuccessful= appInfoReader->ReadL());
+            HBufC* const appBinaryFullName = appInfoReader->AppBinaryFullName();
+            if (appBinaryFullName)
+                {
+                delete iFullName;
+                iFullName = appBinaryFullName;
+                }
+                
+            if (!iFullName)
+                {
+                delete appInfoReader;
+                return KErrNoMemory;
+                }
+                
+            // if this object has just been constructed, iUidType is currently the TUidType
+            // of the registration file, it should be the TUidType of the app binary file
+            TUidType uidType = appInfoReader->AppBinaryUidType();
+            if (uidType[1].iUid != KNullUid.iUid)
+                iUidType = uidType;
+
+            // must get captions regardless of value of readSuccessful,
+            // because the V1 reader might have read captions
+            // this is done to maintain behavioural compatibility with V1
+            caption = appInfoReader->Caption();
+            shortCaption = appInfoReader->ShortCaption();
+
+            CApaAppIconArray* icons = appInfoReader->Icons();
+            if(icons)
+                {
+                delete iIcons;
+                iIcons = icons;
+                iIconLoader = appInfoReader->IconLoader();
+                }
+            else
+                {           
+                TRAPD(err, icons = CApaAppIconArray::NewL());
+                if(err == KErrNone)
+                    {
+                    delete iIcons;
+                    iIcons = icons;
+                    }
+                }
+                
+            iTimeStamp = appInfoReader->TimeStamp();
+            delete iLocalisableResourceFileName;
+            iLocalisableResourceFileName = appInfoReader->LocalisableResourceFileName();
+            iLocalisableResourceFileTimeStamp = appInfoReader->LocalisableResourceFileTimeStamp();
 
-			HBufC* const appBinaryFullName = appInfoReader->AppBinaryFullName();
-			if (appBinaryFullName)
-				{
-				delete iFullName;
-				iFullName = appBinaryFullName;
-				}
-				
-			if (!iFullName)
-				{
-				delete appInfoReader;
-				return KErrNoMemory;
-				}
-				
-			// if this object has just been constructed, iUidType is currently the TUidType
-			// of the registration file, it should be the TUidType of the app binary file
-			TUidType uidType = appInfoReader->AppBinaryUidType();
-			if (uidType[1].iUid != KNullUid.iUid)
-				iUidType = uidType;
+            const TBool isNonNativeApp = 
+                (TParsePtrC(*iRegistrationFile).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles) == 0);
+                
+            if (isNonNativeApp)
+                {
+                // In the case of a non-native app, the resource file has been prefixed with a
+                // TCheckedUid, the second of whose UIDs is the non-native application type uid.
+                TEntry entry;
+                const TInt error=iFs.Entry(*iRegistrationFile, entry);
+                if (error!=KErrNone)
+                    {
+                    delete appInfoReader;
+                    return error;
+                    }
+                    
+                __ASSERT_DEBUG(entry.iType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile, Panic(EPanicUnexpectedUid));
+                iNonNativeApplicationType=entry.iType[1];
+                }
+
+            delete iOpaqueData;
+            iOpaqueData = appInfoReader->OpaqueData();
+
+            if (readSuccessful)
+                {
+                appInfoReader->Capability(iCapabilityBuf);
+
+                iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
 
-			// must get captions regardless of value of readSuccessful,
-			// because the V1 reader might have read captions
-			// this is done to maintain behavioural compatibility with V1
-			caption = appInfoReader->Caption();
-			shortCaption = appInfoReader->ShortCaption();
+                delete iIconFileName;
+                iIconFileName = appInfoReader->IconFileName();
+                iIconFileTimeStamp = appInfoReader->IconFileTimeStamp();
+                iNonMbmIconFile = appInfoReader->NonMbmIconFile();
+                iNumOfAppIcons = appInfoReader->NumOfAppIcons();
+                iApplicationLanguage = appInfoReader->AppLanguage();
+                        
+                // views
+                iViewDataArray->ResetAndDestroy();
+                CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
+                if (viewDataArray)
+                    {
+                    delete iViewDataArray;
+                    iViewDataArray = viewDataArray;
+                    
+                    if(!iIconLoader && ViewMbmIconsRequireLoading())
+                        {
+                        //if VIEW_DATA contains a MBM icon we need to initialize iIconLoader
+                        iIconLoader = appInfoReader->IconLoader();
+                        }
+                    }
 
-			CApaAppIconArray* icons = appInfoReader->Icons();
-			if(icons)
-				{
-				delete iIcons;
-				iIcons = icons;
-				iIconLoader = appInfoReader->IconLoader();
-				}
-			else
-				{			
-				TRAPD(err, icons = CApaAppIconArray::NewL());
-				if(err == KErrNone)
-					{
-					delete iIcons;
-					iIcons = icons;
-					}
-				}
-				
-			iTimeStamp = appInfoReader->TimeStamp();
-			delete iLocalisableResourceFileName;
-			iLocalisableResourceFileName = appInfoReader->LocalisableResourceFileName();
-			iLocalisableResourceFileTimeStamp = appInfoReader->LocalisableResourceFileTimeStamp();
+                // owned files
+                iOwnedFileArray->Reset();
+                CDesCArray* const ownedFileArray = appInfoReader->OwnedFiles();
+                if (ownedFileArray)
+                    {
+                    delete iOwnedFileArray;
+                    iOwnedFileArray = ownedFileArray;
+                    }
+                
+                UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
+                }
+
+            delete appInfoReader;
+            }
+        }
+        
+    if (!caption)
+        {
+        TParsePtrC parse (*iFullName);
+        caption = parse.Name().Alloc();
+        }
+
+    // Put the captions into place
+    if (caption)
+        {
+        if (!shortCaption)
+            {
+            shortCaption = caption->Alloc();
+            if (!shortCaption)
+                {
+                delete caption;
+                caption = NULL;
+                }
+            }
 
-			const TBool isNonNativeApp = 
-				(TParsePtrC(*iRegistrationFile).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles) == 0);
-				
-			if (isNonNativeApp)
-				{
-				// In the case of a non-native app, the resource file has been prefixed with a
-				// TCheckedUid, the second of whose UIDs is the non-native application type uid.
-				TEntry entry;
-				const TInt error=iFs.Entry(*iRegistrationFile, entry);
-				if (error!=KErrNone)
-					{
-					delete appInfoReader;
-					return error;
-					}
-					
-				__ASSERT_DEBUG(entry.iType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile, Panic(EPanicUnexpectedUid));
-				iNonNativeApplicationType=entry.iType[1];
-				}
+        delete iCaption;
+        iCaption = caption;
+        delete iShortCaption;
+        iShortCaption = shortCaption;
+        }
+
+    return caption ? KErrNone : KErrNoMemory;
+    }
+
+
+/** Returns true if app info was provided by a registration file
+
+@return true if app info was provided by a registration file
+*/
+EXPORT_C TBool CApaAppData::RegistrationFileUsed() const
+    {
+    return iRegistrationFile != NULL;
+    }
+
+/** Returns the full filename of the registration resource file
 
-			delete iOpaqueData;
-			iOpaqueData = appInfoReader->OpaqueData();
+@return The full path and filename of the registration resource file.
+@internalTechnology
+*/
+EXPORT_C TPtrC CApaAppData::RegistrationFileName() const
+    {
+    if (iRegistrationFile)
+        {
+        return *iRegistrationFile;
+        }
+    else
+        {
+        return TPtrC(KNullDesC);
+        }
+    }
+
+
+/** Returns the full filename of the localisable resource file
 
-			if (readSuccessful)
-				{
-				appInfoReader->Capability(iCapabilityBuf);
+@return The full path and filename of the localisable resource file.
+@internalTechnology
+*/
+EXPORT_C TPtrC CApaAppData::LocalisableResourceFileName() const
+    {
+    if (iLocalisableResourceFileName)
+        {
+        return *iLocalisableResourceFileName;
+        }
+    else
+        {
+        return TPtrC(KNullDesC);
+        }
+    }
 
-				iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
+
+TBool CApaAppData::Update()
+// returns true if changes were made to the cached data
+    {
+    __APA_PROFILE_START(17);
+    TBool changed=EFalse;
 
-				delete iIconFileName;
-				iIconFileName = appInfoReader->IconFileName();
-				iIconFileTimeStamp = appInfoReader->IconFileTimeStamp();
-				iNonMbmIconFile = appInfoReader->NonMbmIconFile();
-				iNumOfAppIcons = appInfoReader->NumOfAppIcons();
-				iApplicationLanguage = appInfoReader->AppLanguage();
-						
-				// views
-				iViewDataArray->ResetAndDestroy();
-				CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
-				if (viewDataArray)
-					{
-					delete iViewDataArray;
-					iViewDataArray = viewDataArray;
-					
-					if(!iIconLoader && ViewMbmIconsRequireLoading())
-					    {
-					    //if VIEW_DATA contains a MBM icon we need to initialize iIconLoader
-					    iIconLoader = appInfoReader->IconLoader();
-					    }
-					}
+    // Get app info file entry
+    TEntry entry;
+    TInt ret;
+    if (iRegistrationFile != NULL)
+        {
+        ret = iFs.Entry(*iRegistrationFile, entry);
+        if (ret==KErrNone && entry.iModified!=iTimeStamp)
+            {
+            // assume registration file may have changed
+            changed = ETrue;
+            }
+        else
+            {
+            if (iLocalisableResourceFileName)
+                {
+                // see if localisable resource information might have changed
+                TParse parse;
+                ret = parse.SetNoWild(KAppResourceFileExtension, iLocalisableResourceFileName, NULL);
+                if (ret == KErrNone)
+                    {
+                    TFileName resourceFileName(parse.FullName());
+                    TLanguage language;
+                    BaflUtils::NearestLanguageFileV2(iFs, resourceFileName, language);
+                    (void)language;
+                    if (resourceFileName.CompareF(*iLocalisableResourceFileName)!=0)
+                        {
+                        changed = ETrue;
+                        }
+                    else
+                        {
+                        ret = iFs.Entry(*iLocalisableResourceFileName, entry);
+                        if ((ret==KErrNotFound && iLocalisableResourceFileTimeStamp!=TTime(0)) ||
+                            (ret==KErrNone && entry.iModified!=iLocalisableResourceFileTimeStamp))
+                            {
+                            changed = ETrue;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    if (changed)
+        {
+        // re-read data
+        // Ignore result, nothing we can do in case failure
+        // and the old values should be preserved
+        const TInt ignore = ReadApplicationInformationFromResourceFiles();
+        } //lint !e529 Symbol 'ignore' not subsequently referenced
+        
+    else 
+        {
+        if (iIconFileName)
+            {
+            ret = iFs.Entry(*iIconFileName, entry);
+            // See if the icon file has been "modified"
+            // It could have been replaced with a differnt version, deleted or added 
+            // if the icon file specified in the resource was missing
+            if ((ret==KErrNotFound && iIconFileTimeStamp!=TTime(0)) ||
+                    (ret==KErrNone && entry.iModified!=iIconFileTimeStamp))
+                    {
+                    // Assume the icon file has changed
+                    iIconFileTimeStamp = entry.iModified;
+                    changed = ETrue;
+                    }
+            }
+        }
 
-				// owned files
-				iOwnedFileArray->Reset();
-				CDesCArray* const ownedFileArray = appInfoReader->OwnedFiles();
-				if (ownedFileArray)
-					{
-					delete iOwnedFileArray;
-					iOwnedFileArray = ownedFileArray;
-					}
-				
-				UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
-				}
+    __APA_PROFILE_END(17);
+    return changed;
+    }
 
-			delete appInfoReader;
-			}
-		}
-		
-	if (!caption)
-		{
-		TParsePtrC parse (*iFullName);
-		caption = parse.Name().Alloc();
-		}
+EXPORT_C TBool CApaAppData::IsPending() const
+/* Returns true if the app info is not yet updated by the current scan. */
+    {
+    return (iIsPresent==CApaAppData::EPresentPendingUpdate 
+        || iIsPresent==CApaAppData::ENotPresentPendingUpdate);
+    }
+
+EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
+/** @internalComponent */
+    {
+    return iNonNativeApplicationType;
+    }
 
-	// Put the captions into place
-	if (caption)
-		{
-		if (!shortCaption)
-			{
-			shortCaption = caption->Alloc();
-			if (!shortCaption)
-				{
-				delete caption;
-				caption = NULL;
-				}
-			}
+void CApaAppData::SetAppPending()
+    {
+    if (iIsPresent == CApaAppData::ENotPresent 
+        || iIsPresent == CApaAppData::ENotPresentPendingUpdate)
+        {
+        iIsPresent = CApaAppData::ENotPresentPendingUpdate;
+        }
+    else
+        {
+        iIsPresent = CApaAppData::EPresentPendingUpdate;
+        }
+    }
+#endif
 
-		delete iCaption;
-		iCaption = caption;
-		delete iShortCaption;
-		iShortCaption = shortCaption;
-		}
+EXPORT_C TApaAppEntry CApaAppData::AppEntry() const
+/** Constructs an application entry based on this object.
 
-	return caption ? KErrNone : KErrNoMemory;
-	}
+@return The application entry. */
+    {
+    return TApaAppEntry(iUidType,*iFullName);
+    }
 
 EXPORT_C CApaAppData::~CApaAppData()
 // Just delete components, NOT iNext (next CApaAppData in the list).
@@ -465,17 +779,20 @@
 		}
 	delete iOwnedFileArray;
 	delete iIconFileName;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	delete iLocalisableResourceFileName;
+    delete iRegistrationFile;	
+#endif	
 	if (iServiceArray)
 		{
 		CleanupServiceArray(iServiceArray);
 		iServiceArray = NULL;
 		}
 	delete iOpaqueData;
-	delete iRegistrationFile;
 	iNext = NULL;
 	}
 
+
 void CApaAppData::UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray)
 	{
 	// clear out any existing service info
@@ -576,14 +893,6 @@
 	return iIcons->IconSizesL();
 	}
 
-EXPORT_C TApaAppEntry CApaAppData::AppEntry() const
-/** Constructs an application entry based on this object.
-
-@return The application entry. */
-	{
-	return TApaAppEntry(iUidType,*iFullName);
-	}
-
 
 EXPORT_C void CApaAppData::Capability(TDes8& aCapabilityBuf)const
 /** Gets the application's capabilities.
@@ -614,82 +923,6 @@
 	return iOwnedFileArray;
 	}
 
-TBool CApaAppData::Update()
-// returns true if changes were made to the cached data
-	{
-	__APA_PROFILE_START(17);
-	TBool changed=EFalse;
-
-	// Get app info file entry
-	TEntry entry;
-	TInt ret;
-	if (iRegistrationFile != NULL)
-		{
-		ret = iFs.Entry(*iRegistrationFile, entry);
-		if (ret==KErrNone && entry.iModified!=iTimeStamp)
-			{
-			// assume registration file may have changed
-			changed = ETrue;
-			}
-		else
-			{
-			if (iLocalisableResourceFileName)
-				{
-				// see if localisable resource information might have changed
-				TParse parse;
-				ret = parse.SetNoWild(KAppResourceFileExtension, iLocalisableResourceFileName, NULL);
-				if (ret == KErrNone)
-					{
-					TFileName resourceFileName(parse.FullName());
-					TLanguage language;
-					BaflUtils::NearestLanguageFileV2(iFs, resourceFileName, language);
-					(void)language;
-					if (resourceFileName.CompareF(*iLocalisableResourceFileName)!=0)
-						{
-						changed = ETrue;
-						}
-					else
-						{
-						ret = iFs.Entry(*iLocalisableResourceFileName, entry);
-						if ((ret==KErrNotFound && iLocalisableResourceFileTimeStamp!=TTime(0)) ||
-							(ret==KErrNone && entry.iModified!=iLocalisableResourceFileTimeStamp))
-							{
-							changed = ETrue;
-							}
-						}
-					}
-				}
-			}
-		}
-	if (changed)
-		{
-		// re-read data
-		// Ignore result, nothing we can do in case failure
-		// and the old values should be preserved
-		const TInt ignore = ReadApplicationInformationFromResourceFiles();
-		} //lint !e529 Symbol 'ignore' not subsequently referenced
-		
-	else 
-		{
-		if (iIconFileName)
-			{
-			ret = iFs.Entry(*iIconFileName, entry);
-			// See if the icon file has been "modified"
-			// It could have been replaced with a differnt version, deleted or added 
-			// if the icon file specified in the resource was missing
-			if ((ret==KErrNotFound && iIconFileTimeStamp!=TTime(0)) ||
-					(ret==KErrNone && entry.iModified!=iIconFileTimeStamp))
-					{
-					// Assume the icon file has changed
-					iIconFileTimeStamp = entry.iModified;
-					changed = ETrue;
-					}
-			}
-		}
-
-	__APA_PROFILE_END(17);
-	return changed;
-	}
 
 EXPORT_C TDataTypePriority CApaAppData::DataType(const TDataType& aDataType) const
 // returns the priority of the data type
@@ -719,12 +952,6 @@
 	}
 
 
-EXPORT_C TBool CApaAppData::IsPending() const
-/* Returns true if the app info is not yet updated by the current scan. */
-	{
-	return (iIsPresent==CApaAppData::EPresentPendingUpdate 
-		|| iIsPresent==CApaAppData::ENotPresentPendingUpdate);
-	}
 
 EXPORT_C TBool CApaAppData::CanUseScreenMode(TInt aScreenMode)
 /** Tests whether the specified screen mode is valid for any of 
@@ -775,51 +1002,6 @@
 	return iDefaultScreenNumber;
 	}
 
-/** Returns true if app info was provided by a registration file
-
-@return true if app info was provided by a registration file
-*/
-EXPORT_C TBool CApaAppData::RegistrationFileUsed() const
-	{
-	return iRegistrationFile != NULL;
-	}
-
-/** Returns the full filename of the registration resource file
-
-@return The full path and filename of the registration resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::RegistrationFileName() const
-	{
-	if (iRegistrationFile)
-		{
-		return *iRegistrationFile;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
-/** Returns the full filename of the localisable resource file
-
-@return The full path and filename of the localisable resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::LocalisableResourceFileName() const
-	{
-	if (iLocalisableResourceFileName)
-		{
-		return *iLocalisableResourceFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
 /** Returns the non-native application opaque data
 
 @return The non-native application opaque data.
@@ -837,11 +1019,6 @@
 		}
 	}
 
-EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
-/** @internalComponent */
-	{
-	return iNonNativeApplicationType;
-	}
 
 /** Returns the full filename of the file containing application icons
 
@@ -991,7 +1168,9 @@
 	 	iIconFileNameFromResourceFile = iIconFileName;
 	 	iIconFileName = NULL;
 	 	iNonMbmIconFileFromResourceFile = iNonMbmIconFile;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	 	
 	 	iIconFileTimeStampFromResourceFile = iIconFileTimeStamp;
+#endif	 	
 		}
 		
 	iNonMbmIconFile = !CApaAppInfoReader::FileIsMbmWithGenericExtensionL(aFileName);
@@ -1025,29 +1204,19 @@
 		}
 	}
 
-void CApaAppData::SetAppPending()
-	{
-	if (iIsPresent == CApaAppData::ENotPresent 
-		|| iIsPresent == CApaAppData::ENotPresentPendingUpdate)
-		{
-		iIsPresent = CApaAppData::ENotPresentPendingUpdate;
-		}
-	else
-		{
-		iIsPresent = CApaAppData::EPresentPendingUpdate;
-		}
-	}
-
 void CApaAppData::InternalizeL(RReadStream& aReadStream)
 /** Internalizes the appdata from the AppsList.bin file */
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	TUint highTime = aReadStream.ReadUint32L();
 	TUint lowTime = aReadStream.ReadUint32L();
 	iTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
-
+	
 	highTime = aReadStream.ReadUint32L();
 	lowTime = aReadStream.ReadUint32L();
 	iIconFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
+#endif
+	
 	iCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Caption
 	iShortCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Shortcaption
 	iFullName = HBufC::NewL(aReadStream, KMaxFileName);		// Filename of application binary
@@ -1061,7 +1230,9 @@
 	iUidType = TUidType(uid1, uid2, uid3);	// Application UID
 	
 	aReadStream >> iCapabilityBuf;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	iRegistrationFile = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
+#endif	
 	iDefaultScreenNumber = aReadStream.ReadUint32L();	// Default Screen number
 	iNumOfAppIcons = aReadStream.ReadInt32L();	// No. of icons
 	iNonMbmIconFile = aReadStream.ReadUint32L();
@@ -1092,6 +1263,7 @@
 		TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL()); // Creates and Loads Default Icons.
 		}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
 	HBufC* localisableResourceFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
 	if (*localisableResourceFileName != KNullDesC)
 		iLocalisableResourceFileName = localisableResourceFileName;
@@ -1101,10 +1273,13 @@
 	highTime = aReadStream.ReadUint32L();
 	lowTime = aReadStream.ReadUint32L();
 	iLocalisableResourceFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));	// Localisable file timestamp
-
+#endif
+	
 	iApplicationLanguage = (TLanguage)aReadStream.ReadInt32L();	// Application Language
 	iIndexOfFirstOpenService = aReadStream.ReadUint32L();		// Index of first open service
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	iNonNativeApplicationType.iUid = aReadStream.ReadUint32L();
+#endif
 
 	HBufC8* opaqueData = HBufC8::NewL(aReadStream, KMaxFileName);	// Opaque Data
 	if (*opaqueData != KNullDesC8)
@@ -1203,12 +1378,10 @@
 
 void CApaAppData::ExternalizeL(RWriteStream& aWriteStream) const
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK     
 	aWriteStream.WriteUint32L(I64HIGH(iTimeStamp.Int64()));
 	aWriteStream.WriteUint32L(I64LOW(iTimeStamp.Int64()));
 
-	aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStamp.Int64()));
-	aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStamp.Int64()));
-	aWriteStream << *iCaption;	// Caption
 	if (iIconFileNameFromResourceFile)
 		{
 		aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStampFromResourceFile.Int64()));
@@ -1219,6 +1392,7 @@
 		aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStamp.Int64()));
 		aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStamp.Int64()));
 		}
+#endif	
 	
 	if (iCaptionFromResourceFile) // Caption present in the resource file would be externalized if the one in applist has dynamically changed
 		{
@@ -1241,7 +1415,9 @@
 		aWriteStream << iUidType[i];	// Uid Type
 
 	aWriteStream << iCapabilityBuf;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	aWriteStream << RegistrationFileName();	// Registration filename
+#endif	
 	aWriteStream.WriteUint32L(iDefaultScreenNumber);	// Default screen number
 
 	if (iIconFileNameFromResourceFile)
@@ -1256,17 +1432,20 @@
 		aWriteStream.WriteUint32L(iNonMbmIconFile);
 		aWriteStream << IconFileName();
 		}
-
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
 	aWriteStream << LocalisableResourceFileName();
 
 	aWriteStream.WriteUint32L(I64HIGH(iLocalisableResourceFileTimeStamp.Int64()));
 	aWriteStream.WriteUint32L(I64LOW(iLocalisableResourceFileTimeStamp.Int64()));
+#endif	
 
 	aWriteStream.WriteInt32L(iApplicationLanguage);
 
 	aWriteStream.WriteUint32L(iIndexOfFirstOpenService);
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
 	aWriteStream.WriteUint32L(iNonNativeApplicationType.iUid);
+#endif
 
 	aWriteStream << OpaqueData();
 	
--- a/appfw/apparchitecture/aplist/aplapplistitem.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplapplistitem.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -29,6 +29,13 @@
 #include <badesca.h>
 #include <s32file.h>
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include<usif/scr/appregentries.h>
+#include<usif/scr/scr.h>
+#endif
+
+
+ 
 // classes defined:
 class CApaAppData;
 class CApaAppList;
@@ -94,15 +101,25 @@
 */
 class CApaAppData : public CBase
 	{
-public:
-	IMPORT_C static CApaAppData* NewL(const TApaAppEntry& aAppEntry, RFs& aFs);
+public:    
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    IMPORT_C static CApaAppData* NewL(const Usif::CApplicationRegistrationData& aAppInfo, RFs& aFs, const Usif::RSoftwareComponentRegistry& aScrCon);
+    IMPORT_C TBool IsLangChangePending();
+#else
+    IMPORT_C static CApaAppData* NewL(const TApaAppEntry& aAppEntry, RFs& aFs);
+    inline TBool IsPresent() const;  
+    IMPORT_C TBool RegistrationFileUsed() const;  
+    IMPORT_C TPtrC RegistrationFileName() const;   
+    IMPORT_C TBool IsPending()const;
+    IMPORT_C TPtrC LocalisableResourceFileName() const;    
+#endif
+
 	IMPORT_C ~CApaAppData();
 	IMPORT_C TApaAppEntry AppEntry() const;
 	inline TPtrC Caption() const;
 	inline TPtrC ShortCaption() const;
 	IMPORT_C CApaMaskedBitmap* Icon(TInt aIconIndex) const;
 	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
-	inline TBool IsPresent() const;
 	// ER5
 	IMPORT_C TDataTypePriority DataType(const TDataType& aDataType) const;
 	// ER6
@@ -116,22 +133,17 @@
 	IMPORT_C void GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const;
 	// 8.1
 	IMPORT_C TUint DefaultScreenNumber() const;
-	IMPORT_C TBool RegistrationFileUsed() const;
 	IMPORT_C TPtrC IconFileName() const;
 	IMPORT_C TBool NonMbmIconFile() const;
-
 	// 9.0
 	IMPORT_C TBool ImplementsService(TUid aServiceUid) const;
 	TInt ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const;
 
 	// 9.1
 	IMPORT_C TLanguage ApplicationLanguage() const;
-	IMPORT_C TPtrC RegistrationFileName() const;
 	IMPORT_C TPtrC8 OpaqueData() const;
-	IMPORT_C TUid NonNativeApplicationType() const;
-	IMPORT_C TPtrC LocalisableResourceFileName() const;
+    IMPORT_C TUid NonNativeApplicationType() const;
 	IMPORT_C void SetShortCaptionL(const TDesC& aShortCaption);
-	IMPORT_C TBool IsPending()const;
 	// 9.5
 	IMPORT_C void SetCaptionL(const TDesC& aCaption);
 	IMPORT_C void SetIconsL(const TDesC& aFileName, TInt aNumIcons);
@@ -142,15 +154,21 @@
 	inline CApaAppData* Next() const;
 private:
 	CApaAppData(RFs& aFs);
-	TBool Update();
-	void SetAppPending();
-
-	void ConstructL(const TApaAppEntry& aAppEntry);
-	TInt ReadApplicationInformationFromResourceFiles();
 	void UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray);
 	TDataTypePriority DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const;
 	void InternalizeL(RReadStream& aReadStream);
 	TBool ViewMbmIconsRequireLoading() const;
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    void ConstructL(const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScrCon);	
+    TInt ReadApplicationInformationFromSCRL(const Usif::CApplicationRegistrationData& aAppInfo, const Usif::RSoftwareComponentRegistry& aScrCon);
+#else
+    TBool Update();
+    void SetAppPending();
+    void ConstructL(const TApaAppEntry& aAppEntry);	
+    TInt ReadApplicationInformationFromResourceFiles();
+#endif
+	
 private:
 	enum { ENotPresent, ENotPresentPendingUpdate, EPresentPendingUpdate, EIsPresent, ESuperseded };
 private:
@@ -158,35 +176,43 @@
 	HBufC* iCaption;
 	HBufC* iShortCaption;
 	HBufC* iFullName; // filename of application binary
-	TInt iIsPresent; // uses enum
-	TUidType iUidType;
+	TUid iUid;
+    TUidType iUidType;  	
 	CApaAppData* iNext;
 	TApaAppCapabilityBuf iCapabilityBuf;
 	CApaAppEntry* iSuccessor;
-	TTime iTimeStamp;
 	CArrayPtrFlat<CApaAppViewData>* iViewDataArray;
 	CDesCArray* iOwnedFileArray;
  	RFs& iFs;
- 	HBufC* iRegistrationFile;
  	TUint iDefaultScreenNumber;
  	HBufC* iIconFileName;
  	TBool iNonMbmIconFile;
- 	HBufC* iLocalisableResourceFileName;
- 	TTime iLocalisableResourceFileTimeStamp;
-	TTime iIconFileTimeStamp;
  	TLanguage iApplicationLanguage;
  	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
  	TInt iIndexOfFirstOpenService;
-	TUid iNonNativeApplicationType;
 	HBufC8* iOpaqueData;
  	TInt iNumOfAppIcons;
 	TInt iNumOfAppIconsFromResourceFile;
  	HBufC* iIconFileNameFromResourceFile; // Icon file name as found in the localisable resource file
  	TBool iNonMbmIconFileFromResourceFile; // A Flag that tells whether the icon in resource file is non MBM file format
- 	TTime iIconFileTimeStampFromResourceFile;
 	HBufC* iShortCaptionFromResourceFile;	// Short Caption as found in the localisable resource file
 	HBufC* iCaptionFromResourceFile;		// Caption as found in the localisable resource file
 	CApaIconLoader* iIconLoader;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    TInt iIsPresent; // uses enum	
+    TTime iTimeStamp;  
+    HBufC* iRegistrationFile; 
+    HBufC* iLocalisableResourceFileName;
+    TTime iLocalisableResourceFileTimeStamp;
+    TTime iIconFileTimeStamp;    
+    TUid iNonNativeApplicationType;  
+    TTime iIconFileTimeStampFromResourceFile;
+#endif
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    TBool iIsLangChangePending;
+#endif
+    
 private:
 	friend class CApaAppList;
 	};
@@ -249,11 +275,13 @@
 inline TPtrC CApaAppData::ShortCaption() const
 	{ return *iShortCaption; }
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /** Tests whether the application is present or not on the device.
 
 @return True if application exists, else false. */
 inline TBool CApaAppData::IsPresent() const
 	{ return iIsPresent; }
+#endif
 
 /** Gets the Next Appdata in the list
 
--- a/appfw/apparchitecture/aplist/aplappregfinder.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/aplist/aplappregfinder.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -187,8 +187,13 @@
 			const TDriveName driveName = currentDrive.iUnit.Name();
 			regFileNameParser.Set(entry.iName, &appFolderOnDrive, &driveName);
 
-			// If the appliation is located on a removable drive...
-			if (currentDrive.iAttribs&KDriveAttRemovable)
+			// Apparc will call sidchecker to verify if an application is a valid registered application. 
+			// Apparc will call sidchecker in the following conditions
+			// 1. If the current drive is a removable drive
+			// 2. If the current drive is not 
+			//		a) an internal read-only drive
+			// 		b) the system drive
+			if(currentDrive.iAttribs&KDriveAttRemovable || ((currentDrive.iUnit != iFs.GetSystemDrive()) && (currentDrive.iAttribs&KDriveAttInternal) && !(currentDrive.iAttribs&KDriveAttRom)))
 				{
 				// ...then verify that there is a valid Secure ID (SID) for the appliation
 				// to protect against untrusted applications.
--- a/appfw/apparchitecture/aplist/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apparc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apserv/APSCLSV.H	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apserv/APSCLSV.H	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -126,6 +126,8 @@
 	EDebugAddFailingNonNativeApplicationsUpdate,
 	EDebugAddPanicingNonNativeApplicationsUpdate,
 	EDebugAddRollbackPanicingNonNativeApplicationsUpdate, // = 89
+	EAppListServUpdateAppList,
+	EAppListUpdatedAppsInfo,
 	EAppListServAppInfoProvidedByRegistrationFile = 99,	// = 99
 	//WriteDeviceData Capability requirement
 	// ER5
--- a/appfw/apparchitecture/apserv/APSSERV.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apserv/APSSERV.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -26,24 +26,38 @@
 #include "APFREC.H"
 #include "APSSES.H"
 #include "APSSTD.H"
-#include "../aplist/aplappregfinder.h"
 #include "../aplist/aplapplistitem.h"
 #include "APSSCAN.H"
 #include "APSSTD.H"
 #include "APASVST.H"
 #include <datastor.h>
 #include "APSRECCACHE.h"
-#include "apsnnapps.h"
-#include "../apfile/apinstallationmonitor.h"
 #include "../apgrfx/apprivate.h"
 #include "apgnotif.h"
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include<usif/scr/scr.h>
+#include<usif/scr/appregentries.h>
+#include<swi/sisregistrysession.h>
+#else
+#include "../aplist/aplappregfinder.h"
+#include "apsnnapps.h"
+#include "../apfile/apinstallationmonitor.h"
+#endif
+
+
 _LIT(KAppArcServerSemaphore,"AppArcServerSemaphore");
 _LIT(KAppArcServerThread,"AppArcServerThread");
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 _LIT(KAppRegistrationFileImportLocation, "?:\\private\\10003a3f\\import\\apps\\");
 _LIT(KAppResourceAppsLocation, "?:\\resource\\apps\\");
 _LIT(KNonNativeApplicationTypeRegistry, ":\\private\\10003a3f\\NonNativeTypes.dat");
 
+//To monitor all drives.
+const TInt KApaMonitorAllDrives = 0x3FFFFFF;
+#endif
+
 /*
  * patchable const data values defined in ApsConstData.cpp
  */
@@ -55,9 +69,6 @@
 
 const TUint8 KPolicyElementWriteDeviceData = 0;
 
-//To monitor all drives.
-const TInt KApaMonitorAllDrives = 0x3FFFFFF;
-
 const TUint KRangeCount = 3; 
 
 const TInt KAppListServRanges[KRangeCount] = 
@@ -139,8 +150,10 @@
 	iAppList(0),
 	iTypeStoreModified(0),
 	iLoadRecognizersOnDemand(KApaLoadDataRecognizersOnDemand),
-	iLoadMbmIconsOnDemand(KApaLoadMbmIconsOnDemand),
-	iForceRegistrationStatus(EForceRegistrationNone)
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+	iForceRegistrationStatus(EForceRegistrationNone),
+#endif
+	iLoadMbmIconsOnDemand(KApaLoadMbmIconsOnDemand)
 	{
 	
 #ifdef __WINS__
@@ -163,7 +176,16 @@
 	StartL(KAppListServerName);
 	User::LeaveIfError(Dll::SetTls(this));
 	User::LeaveIfError(iFs.Connect());
-		
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+    //Connect to sisregistrysession to initially populate the applications information and 
+    //store it to SCR. 
+    Swi::RSisRegistrySession sisReg;
+    sisReg.Connect();
+    sisReg.Close();
+#endif
+
+    
 	// Get the idle timeout delay from the commandline if specified. The default is 50000ms
 	const TInt cmdLineLen = User::CommandLineLength();
 	TInt idlePeriodicDelay=50000; //default value
@@ -226,12 +248,15 @@
 	
 	iAppList=CApaAppList::NewL(iFs, iLoadMbmIconsOnDemand, idlePeriodicDelay); // takes ownership of scanner
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	// If the phone rebooted halfway through processing updates, there will be a log file left
 	// look for one and recover if neccessary
 	CApsNonNativeApplicationsManager::RecoverFromUpdateLogL(iFs);
+#endif	
 
 	iMimeTypeRecognizer=CApaScanningDataRecognizer::NewL(iFs, !iLoadRecognizersOnDemand);
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	ConstructPathsToMonitorL();	
 
 	if ( iAppFsMonitor )
@@ -239,6 +264,8 @@
 		iAppFsMonitor->Start(ENotifyFile);
 		iAppFsMonitor->SetBlocked(ETrue);			
 		}
+#endif
+	
 	TRAP_IGNORE(iAppList->InitListL(this));
 	
 	//
@@ -260,22 +287,29 @@
 	iBaBackupSessionWrapper=CBaBackupSessionWrapper::NewL();
 	iBaBackupSessionWrapper->RegisterBackupOperationObserverL(*((MBackupOperationObserver*)this));
 
-	//
-	TChar sysDrive = RFs::GetSystemDriveChar();
-	TInt maxSizeofFileName = KNonNativeApplicationTypeRegistry().Length() + 1;
-	iNonNativeApplicationTypeRegistry.CreateL(maxSizeofFileName);
-	iNonNativeApplicationTypeRegistry.Append(sysDrive);
-	iNonNativeApplicationTypeRegistry.Append(KNonNativeApplicationTypeRegistry());
-
-	TRAP_IGNORE(InternalizeNonNativeApplicationTypeArrayL());	// We don't want a corrupt file to prevent from starting
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	TRAP_IGNORE(InitNonNativeApplicationTypeArrayL());
+#else
+    //
+    TChar sysDrive = RFs::GetSystemDriveChar();
+    TInt maxSizeofFileName = KNonNativeApplicationTypeRegistry().Length() + 1;
+    iNonNativeApplicationTypeRegistry.CreateL(maxSizeofFileName);
+    iNonNativeApplicationTypeRegistry.Append(sysDrive);
+    iNonNativeApplicationTypeRegistry.Append(KNonNativeApplicationTypeRegistry());
+	
+    TRAP_IGNORE(InternalizeNonNativeApplicationTypeArrayL());   // We don't want a corrupt file to prevent from starting	
+#endif
+    
 	if(iLoadRecognizersOnDemand)
 		iRecognizerUnloadTimer=CPeriodic::NewL(EPriorityNormal);
 
-	//
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	iAppInstallationMonitor = CApaAppInstallationMonitor::NewL(this);
 	iAppInstallationMonitor->Start();
+#endif	
 	}
 	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 void CApaAppArcServer::ConstructPathsToMonitorL()
 	{
 	TInt drivesToMonitor = KApaDrivesToMonitor;
@@ -337,16 +371,20 @@
 		iAppFsMonitor->AddLocationL(KAppResourceAppsLocation);
 		}	
 	}
-	
+#endif
+
 EXPORT_C CApaAppArcServer::~CApaAppArcServer()
 	{
 	if(iBaBackupSessionWrapper)
 		iBaBackupSessionWrapper->DeRegisterBackupOperationObserver(*this);
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	delete iAppInstallationMonitor;
+    delete iAppFsMonitor;
+    iNonNativeApplicationTypeRegistry.Close();    
+#endif
 	delete iAppList; // deletes scanners
 	delete iMimeTypeRecognizer;
 	delete iMimeTypeToAppMappingsManager;
-	delete iAppFsMonitor;	
 	delete iTypeStoreMonitor;
 	delete iBaBackupSessionWrapper;
 	delete iRecognitionCache;
@@ -361,9 +399,9 @@
 	iNonNativeApplicationTypeArray.Close();
 
 	delete iRecognizerUnloadTimer;
-	iNonNativeApplicationTypeRegistry.Close();
 	}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
 EXPORT_C void CApaAppArcServer::HandleInstallationStartEvent()
 	{
 	if ( iAppFsMonitor )
@@ -381,6 +419,7 @@
 		}
 	AppList().RestartScanL();
 	}
+#endif
 
 CSession2* CApaAppArcServer::NewSessionL(const TVersion& aVersion,const RMessage2&/* aMessage*/) const
 // Create a new server session.
@@ -396,7 +435,7 @@
 //
 // scanning code here
 //
-
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 EXPORT_C TCallBack CApaAppArcServer::RescanCallBack()
 	{
 	return TCallBack(&AppFsNotifyWithForcedRegistrationsResetCallBack,this);
@@ -415,6 +454,7 @@
 	reinterpret_cast<CApaAppArcServer*>(aObject)->UpdateApps();
 	return KErrNone;
 	}
+#endif
 
 TInt CApaAppArcServer::PlugInNotifyCallBack(TAny* aObject)
 	{
@@ -431,6 +471,7 @@
 	return KErrNone;
 	}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 void CApaAppArcServer::UpdateApps()
 // update the list
 	{
@@ -446,7 +487,8 @@
     {
     iForceRegistrationStatus|=EForceRegistrationRequested;
     UpdateApps();
-    }
+    }	
+#endif
 
 void CApaAppArcServer::NotifyUpdate(TInt aReason)
 // tell all sessions to update their clients
@@ -480,10 +522,23 @@
         if(modificationStatus)
             TRAP_IGNORE(iMimeTypeToAppMappingsManager->StoreL());
         }
-    
+   
 	// iterate through sessions
 	iSessionIter.SetToFirst();
 	CApaAppArcServSession* ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    //Get the updated application information from iAppList
+    CArrayFixFlat<TApaAppUpdateInfo>* updatedAppsInfo=iAppList->UpdatedAppsInfo();
+
+    while (ses!=NULL)
+        {
+        //Call session object NotifyClients and pass the updated application information.
+        ses->NotifyClients(aReason, updatedAppsInfo);    
+        ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
+        }
+#else
+	
 	while (ses!=NULL)
 		{
 		if(iForceRegistrationStatus & EForceRegistrationRequested)
@@ -510,6 +565,7 @@
          //If this function is called not because of force registration, clear force registration applist change status. 
         iForceRegistrationStatus &= (~EForceRegistrationAppListChanged);        
          }
+#endif     
 	}
 
 void CApaAppArcServer::UpdatePlugIns()
@@ -576,16 +632,20 @@
 	case MBackupOperationObserver::EAbort:
 		break;
 	case MBackupOperationObserver::EStart:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK   
 		if ( iAppFsMonitor )
 			{
 			iAppFsMonitor->SetBlocked(ETrue);	
 			}
+#endif		
 		break;
 	case MBackupOperationObserver::EEnd:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	    
 		if ( iAppFsMonitor )
 			{
 			iAppFsMonitor->SetBlocked(EFalse);	
 			}
+#endif		
 		break;
 	default:
 		Panic(EEventFromBackupObserverError);
@@ -595,10 +655,12 @@
 
 void CApaAppArcServer::InitialListPopulationComplete()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	if ( iAppFsMonitor )
 		{
 		iAppFsMonitor->SetBlocked(EFalse);	
 		}
+#endif	
 	
 	// notify clients (whoever is interested) that initial population of list is completed
 	iSessionIter.SetToFirst();
@@ -611,41 +673,90 @@
 		}
 	}
 
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+/* 
+ * Cleanup RPointerArray
+ */
+void CleanupAndDestroyLauncherArray(TAny* aRPrray)
+    {
+    RPointerArray<Usif::CLauncherExecutable>* rpArray = (static_cast<RPointerArray<Usif::CLauncherExecutable>*>(aRPrray));
+    rpArray->ResetAndDestroy();
+    rpArray->Close();
+    }
+
+
+/* 
+ * Gets non-native type to its run time mapping information from SCR and initialzes 
+ * a mapping array
+ */
+void CApaAppArcServer::InitNonNativeApplicationTypeArrayL()
+    {
+     Usif::RSoftwareComponentRegistry scrSession;
+     User::LeaveIfError(scrSession.Connect());
+     CleanupClosePushL(scrSession);
+     
+     RPointerArray<Usif::CLauncherExecutable> launchers;
+     //Get non-native type to its run-time mappings 
+     scrSession.GetApplicationLaunchersL(launchers);
+     TCleanupItem cleanup(CleanupAndDestroyLauncherArray, &launchers); 
+     CleanupStack::PushL(cleanup);     
+
+     //Get each mapping and add it to mapping array
+     for(TInt index=0;index<launchers.Count();index++)
+         {
+         Usif::CLauncherExecutable* launcherInfo=launchers[index];
+         SNonNativeApplicationType nonNativeApplicationType;
+         nonNativeApplicationType.iTypeUid.iUid=launcherInfo->TypeId();
+         nonNativeApplicationType.iNativeExecutable=launcherInfo->Launcher().AllocLC();
+         iNonNativeApplicationTypeArray.AppendL(nonNativeApplicationType);
+         CleanupStack::Pop(nonNativeApplicationType.iNativeExecutable);     
+         }
+     CleanupStack::PopAndDestroy(2, &scrSession);
+    }
+
+void CApaAppArcServer::UpdateAppListL(RArray<TApaAppUpdateInfo>* aAppUpdateInfo, TUid aSecureID)
+{
+   iAppList->UpdateApplistL(this, aAppUpdateInfo, aSecureID);
+}
+#else
+
 void CApaAppArcServer::RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable)
-	{
-	for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
-		{
-		if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
-			User::Leave(KErrAlreadyExists);
-		}
-		
-	SNonNativeApplicationType nonNativeApplicationType;
-	nonNativeApplicationType.iTypeUid.iUid=aApplicationType.iUid;
-	nonNativeApplicationType.iNativeExecutable=aNativeExecutable.AllocLC();
-	iNonNativeApplicationTypeArray.AppendL(nonNativeApplicationType);
-	CleanupStack::Pop(nonNativeApplicationType.iNativeExecutable);
-	CleanupStack::PushL(TCleanupItem(DeleteLastNonNativeApplicationType, this));
-	ExternalizeNonNativeApplicationTypeArrayL();
-	CleanupStack::Pop(this); // the TCleanupItem
-	}
+    {
+    for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
+        {
+        if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
+            User::Leave(KErrAlreadyExists);
+        }
+        
+    SNonNativeApplicationType nonNativeApplicationType;
+    nonNativeApplicationType.iTypeUid.iUid=aApplicationType.iUid;
+    nonNativeApplicationType.iNativeExecutable=aNativeExecutable.AllocLC();
+    iNonNativeApplicationTypeArray.AppendL(nonNativeApplicationType);
+    CleanupStack::Pop(nonNativeApplicationType.iNativeExecutable);
+    CleanupStack::PushL(TCleanupItem(DeleteLastNonNativeApplicationType, this));
+    ExternalizeNonNativeApplicationTypeArrayL();
+    CleanupStack::Pop(this); // the TCleanupItem
+    }
 
 void CApaAppArcServer::DeregisterNonNativeApplicationTypeL(TUid aApplicationType)
-	{
-	TInt i;
-	for (i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
-		{
-		if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
-			break;
-		}
-		
-	if (i>=0)
-		{
-		ExternalizeNonNativeApplicationTypeArrayL(i);
-		delete iNonNativeApplicationTypeArray[i].iNativeExecutable;
-		iNonNativeApplicationTypeArray[i].iNativeExecutable = NULL;
-		iNonNativeApplicationTypeArray.Remove(i);
-		}
-	}
+    {
+    TInt i;
+    for (i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
+        {
+        if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
+            break;
+        }
+        
+    if (i>=0)
+        {
+        ExternalizeNonNativeApplicationTypeArrayL(i);
+        delete iNonNativeApplicationTypeArray[i].iNativeExecutable;
+        iNonNativeApplicationTypeArray[i].iNativeExecutable = NULL;
+        iNonNativeApplicationTypeArray.Remove(i);
+        }
+    }
 
 void CApaAppArcServer::InternalizeNonNativeApplicationTypeArrayL()
 	{
@@ -673,37 +784,39 @@
 	CleanupStack::PopAndDestroy(&file);
 	}
 
+
 void CApaAppArcServer::ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore/*=-1*/) const
-	{
-	RFs& fs=const_cast<RFs&>(iFs);
-	fs.MkDirAll(iNonNativeApplicationTypeRegistry); // ignore any error
-	RFile file;
-	CleanupClosePushL(file);
-	User::LeaveIfError(file.Replace(fs, iNonNativeApplicationTypeRegistry, EFileShareExclusive|EFileStream|EFileWrite));
-	RFileWriteStream targetStream;
-	targetStream.Attach(file); // file gets closed by this call, but that's okay, we don't need it any more (targetStream has its own copy of this RFile object that it owns)
-	CleanupClosePushL(targetStream);
-	const TInt arrayCount(iNonNativeApplicationTypeArray.Count());
-	TInt arrayCountToExternalize=arrayCount;
-	if (aIndexToIgnore>=0)
-		--arrayCountToExternalize;
+    {
+    RFs& fs=const_cast<RFs&>(iFs);
+    fs.MkDirAll(iNonNativeApplicationTypeRegistry); // ignore any error
+    RFile file;
+    CleanupClosePushL(file);
+    User::LeaveIfError(file.Replace(fs, iNonNativeApplicationTypeRegistry, EFileShareExclusive|EFileStream|EFileWrite));
+    RFileWriteStream targetStream;
+    targetStream.Attach(file); // file gets closed by this call, but that's okay, we don't need it any more (targetStream has its own copy of this RFile object that it owns)
+    CleanupClosePushL(targetStream);
+    const TInt arrayCount(iNonNativeApplicationTypeArray.Count());
+    TInt arrayCountToExternalize=arrayCount;
+    if (aIndexToIgnore>=0)
+        --arrayCountToExternalize;
 
-	TCardinality(arrayCountToExternalize).ExternalizeL(targetStream);
-	for (TInt i=0; i<arrayCount; ++i)
-		{
-		if (i!=aIndexToIgnore)
-			{
-			const SNonNativeApplicationType& nonNativeApplicationType=iNonNativeApplicationTypeArray[i];
-			targetStream.WriteUint32L(nonNativeApplicationType.iTypeUid.iUid);
-			targetStream << *nonNativeApplicationType.iNativeExecutable;
-			}
-		}
-		
-	targetStream.CommitL();
-	CleanupStack::PopAndDestroy(2, &file);
-	}
+    TCardinality(arrayCountToExternalize).ExternalizeL(targetStream);
+    for (TInt i=0; i<arrayCount; ++i)
+        {
+        if (i!=aIndexToIgnore)
+            {
+            const SNonNativeApplicationType& nonNativeApplicationType=iNonNativeApplicationTypeArray[i];
+            targetStream.WriteUint32L(nonNativeApplicationType.iTypeUid.iUid);
+            targetStream << *nonNativeApplicationType.iNativeExecutable;
+            }
+        }
+        
+    targetStream.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+#endif
 
-TPtrC CApaAppArcServer::NativeExecutableL(TUid aNonNativeApplicationType) const
+TPtrC CApaAppArcServer::NativeExecutableL(TUid aNonNativeApplicationType)
 	{
 	for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
 		{
@@ -711,11 +824,56 @@
 		if (nonNativeApplicationType.iTypeUid.iUid==aNonNativeApplicationType.iUid)
 			return *nonNativeApplicationType.iNativeExecutable;
 		}
-		
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	//If the mapping is not available in the list, search in SCR and add it to the list.
+	TPtrC nativeExecutableName=FindAndAddNonNativeRuntimeMappingL(aNonNativeApplicationType);
+	if(nativeExecutableName==KNullDesC())
+	    User::Leave(KErrNotSupported); // not KErrNotFound
+
+	return nativeExecutableName;
+#else
 	User::Leave(KErrNotSupported); // not KErrNotFound
 	return KNullDesC();
+#endif	
 	}
 
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+TPtrC CApaAppArcServer::FindAndAddNonNativeRuntimeMappingL(TUid aNonNativeApplicationType)
+{
+    //If non-native type to its runtime is not available search in SCR and update in list 
+    Usif::RSoftwareComponentRegistry scrSession;
+    User::LeaveIfError(scrSession.Connect());
+    CleanupClosePushL(scrSession);
+    
+    RPointerArray<Usif::CLauncherExecutable> launchers;
+    //Get non-native type to its run-time mappings 
+    scrSession.GetApplicationLaunchersL(launchers);
+    TCleanupItem cleanup(CleanupAndDestroyLauncherArray, &launchers); 
+    CleanupStack::PushL(cleanup);     
+
+    //Search for mapping and add it mapping list.
+    for(TInt index=0;index<launchers.Count();index++)
+        {
+        Usif::CLauncherExecutable* launcherInfo=launchers[index];
+        if(aNonNativeApplicationType.iUid==launcherInfo->TypeId())
+            {
+            SNonNativeApplicationType nonNativeApplicationType;
+            nonNativeApplicationType.iTypeUid.iUid=launcherInfo->TypeId();
+            nonNativeApplicationType.iNativeExecutable=launcherInfo->Launcher().AllocLC();
+            iNonNativeApplicationTypeArray.AppendL(nonNativeApplicationType);
+            CleanupStack::Pop(nonNativeApplicationType.iNativeExecutable);
+            CleanupStack::PopAndDestroy(2, &scrSession);
+            return *nonNativeApplicationType.iNativeExecutable;
+            }
+        }
+    
+    CleanupStack::PopAndDestroy(2, &scrSession);    
+    return KNullDesC();
+}
+#endif
+
 void CApaAppArcServer::DeleteLastNonNativeApplicationType(TAny* aThis)
 	{ // static
 	CApaAppArcServer& self=*static_cast<CApaAppArcServer*>(aThis);
@@ -736,6 +894,13 @@
 	// iterate through sessions
 	iSessionIter.SetToFirst();
 	CApaAppArcServSession* ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    while (ses)
+        {
+        ses->NotifyScanComplete();  
+        ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
+        }	
+#else
 	while (ses)
 		{
 		if((iForceRegistrationStatus & EForceRegistrationRequested) ||
@@ -760,6 +925,7 @@
 	    }
 	//Clear force registration request status
         iForceRegistrationStatus &= (~EForceRegistrationRequested);
+#endif        
 	}
 
 /*
--- a/appfw/apparchitecture/apserv/APSSES.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apserv/APSSES.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -38,13 +38,18 @@
 #include <s32file.h>
 #include "../apgrfx/apprivate.h"
 #include "apgnotif.h"
-#include "../aplist/aplappregfinder.h"
 #include "ApLaunchChecker.h"
-#include "apsnnapps.h"
 #include "../aplist/aplapplistitem.h"
 
 #include "apsecutils.h"
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include "../aplist/aplappregfinder.h"
+#include "apsnnapps.h"
+#else
+#include "usif/scr/scr.h"
+#endif
+
 const TInt KApaAppListServMaxBuffer=256;
 #include "APSRECCACHE.h"
 const TInt KApaAppInfoArrayGranularity = 4;
@@ -147,21 +152,34 @@
 	return self;
 	}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
 CApaAppListServSession::CApaAppListServSession(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList)
  : iFs(aFs), iAppArcSrv(aAppArcSrv), iAppList(aAppList), iApaAppInfoArray(KApaAppInfoArrayGranularity)
 	{
 
 	}
+#else
+CApaAppListServSession::CApaAppListServSession(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList)
+ : iFs(aFs), iAppArcSrv(aAppArcSrv), iAppList(aAppList), iApaAppInfoArray(KApaAppInfoArrayGranularity), 
+   iNotificationRequested(EFalse)
+	{
+
+	}
+#endif
 
 void CApaAppListServSession::ConstructL()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	iNonNativeApplicationsManager = CApsNonNativeApplicationsManager::NewL(iAppArcSrv,iFs);
+#endif
 	}
 	
 
 CApaAppListServSession::~CApaAppListServSession()
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	delete iNonNativeApplicationsManager;
+#endif
 	iApaAppInfoArray.ResetAndDestroy();
 	iApaAppInfoArray.Close();
 	}
@@ -251,36 +269,68 @@
 		ApplicationLanguageL(aMessage);
 		break;
 	case EAppListServAppInfoProvidedByRegistrationFile: // private OpCode for CEikApplication's use only
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		AppInfoProvidedByRegistrationFileL(aMessage);
+#else
+		ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServAppIconFileName:
 		IconFileNameL(aMessage);
 		break;
 	case EAppListServAppViewIconFileName:
 		ViewIconFileNameL(aMessage);
-		break;	
+		break;
 	case EAppListServPrepareNonNativeApplicationsUpdates:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 		iNonNativeApplicationsManager->PrepareNonNativeApplicationsUpdatesL();
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServRegisterNonNativeApplication:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 		iNonNativeApplicationsManager->RegisterNonNativeApplicationL(aMessage);
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServDeregisterNonNativeApplication:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 		iNonNativeApplicationsManager->DeregisterNonNativeApplicationL(aMessage);
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif
 		break;
 	case EAppListServCommitNonNativeApplications:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 		iNonNativeApplicationsManager->CommitNonNativeApplicationsUpdatesL(aMessage);
 		completeMessage=EFalse;
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServRollbackNonNativeApplications:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 		iNonNativeApplicationsManager->RollbackNonNativeApplicationsUpdates();
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServGetAppType:
 		GetAppTypeL(aMessage);
 		break;
 	case EAppListServForceRegistration:
 		ForceRegistrationL(aMessage);
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 		
 		completeMessage=EFalse;
+#endif		
 		break;
 	case EMatchesSecurityPolicy:
 		MatchesSecurityPolicyL(aMessage);
@@ -295,25 +345,41 @@
 	#endif
 		break;
 	case EDebugAddFailingNonNativeApplicationsUpdate:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	#ifdef _DEBUG
 		iNonNativeApplicationsManager->ForceFailInNonNativeApplicationsUpdatesL();
 	#endif
+#endif
 		break;
 	case EDebugAddPanicingNonNativeApplicationsUpdate:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	#ifdef _DEBUG
 		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsUpdatesL();
 	#endif
+#endif	
 		break;
 	case EDebugAddRollbackPanicingNonNativeApplicationsUpdate:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	#ifdef _DEBUG
 		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsRollbackL();
 	#endif
+#endif	
 		break;
+		
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 		
+	case EAppListServUpdateAppList:
+	    UpdateAppListL(aMessage);
+	    break;
+    case EAppListUpdatedAppsInfo:
+        UpdatedAppsInfoL(aMessage);
+        break;
+#endif	    
 	default:
 		aMessage.Panic(KApaPanicCli,EClientBadRequest);
 		break;
+	
 		}
-		
+	
 	if (completeMessage && !aMessage.IsNull())
 		aMessage.Complete(KErrNone);
 	}
@@ -355,6 +421,18 @@
 
 void CApaAppArcServSession::ServiceL(const RMessage2& aMessage)
 	{
+#ifdef _DEBUG    
+    TFullName* name = new(ELeave) TFullName();
+    RThread client;
+    if ( aMessage.Client( client ) == KErrNone )
+        {
+        client.FullName( *name );
+        client.Close();
+        }
+    RDebug::Print( _L("[Apparc] CApaAppListServSession::ServiceL(0x%08x) - START - op code: %04d, client: %S"), this, aMessage.Function(), name );
+    delete name; 
+#endif
+    
 	TBool completeMessage = ETrue;
 	switch (aMessage.Function())
 		{
@@ -472,10 +550,20 @@
 		}
 		break;
 	case EAppListServRegisterNonNativeApplicationType:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		RegisterNonNativeApplicationTypeL(aMessage);
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif
 		break;
 	case EAppListServDeregisterNonNativeApplicationType:
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 		DeregisterNonNativeApplicationTypeL(aMessage);
+#else
+        ASSERT(0);  // panic debug only
+        User::Leave(KErrNotSupported);
+#endif		
 		break;
 	case EAppListServPreferredBufSize:
 		aMessage.Complete(PreferredBufSize());
@@ -536,9 +624,15 @@
 		break;
 	default:
 		iAppListSession->DoServiceL(aMessage);
+#ifdef _DEBUG   
+		RDebug::Print( _L("[Apparc] CApaAppListServSession::ServiceL(0x%08x) - END - op code: %04d, completeMessage: %d"), this, aMessage.Function(), completeMessage );
+#endif		
 		return;
 		}
-		
+	
+#ifdef _DEBUG 	
+    RDebug::Print( _L("[Apparc] CApaAppListServSession::ServiceL(0x%08x) - END - op code: %04d, completeMessage: %d"), this, aMessage.Function(), completeMessage );
+#endif	
 	if (completeMessage && !aMessage.IsNull())
 		aMessage.Complete(KErrNone);
 	}
@@ -566,6 +660,7 @@
 	return (err==KErrNone) ? Min(iMaxBufSize, preferredBufferSize) : iMaxBufSize;
 	}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 void CApaAppArcServSession::RegisterNonNativeApplicationTypeL(const RMessage2& aMessage)
 	{
 	const TUid applicationType(TUid::Uid(aMessage.Int0()));
@@ -581,23 +676,55 @@
 	const TUid applicationType(TUid::Uid(aMessage.Int0()));
 	iServ.DeregisterNonNativeApplicationTypeL(applicationType);
 	}
+#endif
 
 void CApaAppListServSession::GetAppTypeL(const RMessage2& aMessage)
 	{
+    const TUid KTypeIDToNonNativeUidMapping[2][2]={ {TUid::Uid(0xB031C52A), TUid::Uid(0x10210E26)},  //Java
+                                                    {TUid::Uid(0x7BDB6DA1), TUid::Uid(0x10282821)}}; //Widget 
+   
 	TInt uid = aMessage.Int0();
 	CApaAppData* appData = iAppList.AppDataByUid(TUid::Uid(uid));
 	if (!appData)
+	    {
 		aMessage.Complete(KErrNotFound);
+	    }
 	else
 		{
-		TPckgBuf<TUid> typeUid(appData->NonNativeApplicationType());
-		aMessage.WriteL(1,typeUid);
+		TUid typeId(appData->NonNativeApplicationType());
+		
+		//Check if non-native type to non-native UID mapping available. Otherwise
+		//return whatever returned by NonNativeApplicationType.
+		TUid nonNativeUid=typeId;
+		TInt numMappings= (sizeof(KTypeIDToNonNativeUidMapping)/ (2*sizeof(TUid)));
+		
+		for(TInt index=0; index<numMappings; index++)
+		    {
+            if(typeId == KTypeIDToNonNativeUidMapping[index][0])
+                {
+                nonNativeUid = KTypeIDToNonNativeUidMapping[index][1];
+                break;
+                }
+		    }
+		
+		TPckgBuf<TUid> nonNativeUidBuf(nonNativeUid);
+		aMessage.WriteL(1,nonNativeUidBuf);
 		aMessage.Complete(KErrNone);
 		}
 	}
-	
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
+void CleanupAndDestroyAppInfoArray(TAny* aRPArray)
+    {
+    RPointerArray<Usif::CApplicationRegistrationData>* rpArray = (static_cast<RPointerArray<Usif::CApplicationRegistrationData>*>(aRPArray));
+    rpArray->ResetAndDestroy();
+    rpArray->Close();
+    }
+#endif
+
 void CApaAppListServSession::ForceRegistrationL(const RMessage2& aMessage)
 	{
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
 	TInt bufferSize = aMessage.GetDesLength(0);
 	User::LeaveIfError(bufferSize);
 	HBufC8* const buffer=HBufC8::NewLC(bufferSize);
@@ -623,8 +750,46 @@
 	// Trigger a rescan, when rescan completes it will complete iNotifyOnScanCompleteMsg
 	iNotifyOnScanCompleteMsg=aMessage;
 	iAppArcSrv.UpdateAppsByForceRegistration();
+#else
+	const TUid KUidSisLaunchServer={0x1020473f};
+	
+	if(aMessage.SecureId().iId != KUidSisLaunchServer.iUid)
+	    User::Leave(KErrNotSupported);
+	
+	//Get the size of the updated apps info buffer
+    TInt bufferSize = aMessage.GetDesLength(0);
+
+    //Allocate the buffer of bufferSize and read.
+    HBufC8* const buffer=HBufC8::NewLC(bufferSize);
+    TPtr8 buffer_asWritable(buffer->Des());
+    aMessage.ReadL(0,buffer_asWritable);
+        
+    RDesReadStream readStream(*buffer);
+    CleanupClosePushL(readStream);
+    
+    //Read the number of application information available in the buffer.
+    const TUint count=readStream.ReadUint32L();
+
+    RPointerArray<Usif::CApplicationRegistrationData> appsInfo;
+    TCleanupItem cleanup(CleanupAndDestroyAppInfoArray, &appsInfo); 
+    CleanupStack::PushL(cleanup); 
+    
+    //Read one applciation information at a time and create list of application information.
+    for(TUint index=0; index<count; index++)
+        {
+        Usif::CApplicationRegistrationData* appData= Usif::CApplicationRegistrationData::NewL();
+        CleanupStack::PushL(appData);
+        readStream>>*appData;
+        appsInfo.AppendL(appData);
+        CleanupStack::Pop(appData);
+        }
+    CleanupStack::Pop(); //Remove cleanup
+    CleanupStack::PopAndDestroy(2, buffer); //delete readStream, buffer	
+
+    iAppList.UpdateApplistByForceRegAppsL(appsInfo);
+#endif	
 	}
-	
+
 void CApaAppArcServSession::AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid)
 	{
 #if defined(__PROFILE)
@@ -757,8 +922,75 @@
 	if (!FindAppInList(app, dummy, aUid))
 		User::Leave(KErrNotFound);
 
-	return *app;
-	}
+    return *app;
+    }
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+/**
+locate app in list, return EFalse if it isn't present
+search is regardless of screen mode.
+@internalComponent
+*/
+TBool CApaAppListServSession::FindAppInList(CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid)
+    {
+    // Look for the app with aAppUid in the applist we keep
+    const CApaAppList& list = iAppList;
+    aApp = list.AppDataByUid(aAppUid);
+    if (aApp)
+        aEntry = aApp->AppEntry();
+    
+    // If the app list is currently in flux, try to nail down the app by looking for it specifically
+    const TBool appPendingOnLangChange = (aApp && list.IsLanguageChangePending() && aApp->IsPending());
+
+    if ((!aApp || appPendingOnLangChange) && !list.IsIdleUpdateComplete())
+        {
+        // 1. App wasn't found, but an app scan is currently in progress,
+        // so try to find and add the specific app we're looking for to the list
+        
+        // 2. On language change event, current app scan could not yet update the found app, 
+        // so try to update the specific app we're looking for, in the list.
+        if(aAppUid != KNullUid)
+            {
+            CApaAppData* app = NULL;
+            TRAPD(err, app = FindSpecificAppL(aAppUid));
+            if (!err && app)
+                {
+                // app has been found and added to the app list
+                aApp = app;
+                aEntry = aApp->AppEntry();
+                }
+            }
+        }
+
+    return (aApp != NULL);
+    }
+
+#else
+/**
+locate app in list, return EFalse if it isn't present
+search is regardless of screen mode.
+@internalComponent
+*/
+TBool CApaAppListServSession::FindAppInList(CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid)
+    {
+    // Look for the application with aAppUid in the applist
+    const CApaAppList& list = iAppList;
+    aApp = list.AppDataByUid(aAppUid);
+   
+    TBool appListChanging= (list.IsLanguageChangePending()||!list.IsIdleUpdateComplete());
+   //If the application is not in the applist and applist is still getting updated then find the 
+   //requested application specifically and add to applist.
+    TInt err=KErrNone;
+    if( (!aApp && appListChanging) || (aApp && aApp->IsLangChangePending()))
+        TRAP(err, aApp=FindSpecificAppL(aAppUid));
+
+    if (!err && aApp)
+        aEntry = aApp->AppEntry(); 
+    
+    return (aApp != NULL);
+    }
+
+#endif
 
 void CApaAppListServSession::SendArrayL(const MArrayItemWriter& aArrayItemWriter,const RMessage2& aMessage) const
 	{
@@ -1027,6 +1259,23 @@
               }
           else
               {
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK          
+              Usif::RSoftwareComponentRegistry scrCon;
+              User::LeaveIfError(scrCon.Connect());
+              CleanupClosePushL(scrCon);
+              TApaAppEntry appEntry=appData->AppEntry();
+              
+			  //If component id of an application is non-zero then it is installed by installer
+			  //after phone marketed.
+              TBool isInstalledApp=(scrCon.GetComponentIdForAppL(appEntry.iUidType[2])!=0);
+
+              //data priority for UnTrusted apps would be capped if it is greater than the threshold priority i.e, KMaxTInt16.
+              if (!isSidTrusted && isInstalledApp) 
+                  {
+                  priority = KDataTypeUnTrustedPriorityThreshold; 
+                  }
+              CleanupStack::PopAndDestroy(); //scrCon
+#else
               TPtrC registrationFilePath = appData->RegistrationFileName();
               TInt match = registrationFilePath.MatchF (
                                           KLitPathForUntrustedRegistrationResourceFiles );
@@ -1038,6 +1287,7 @@
                   // than UnTrusted apps Threshold priority
                   priority = KDataTypeUnTrustedPriorityThreshold;
                   }
+#endif
               }
           }
 	   else
@@ -1672,50 +1922,17 @@
 	return (capabilityBuf().iAttributes & TApaAppCapability::EControlPanelItem);
 	}
 
-/**
-locate app in list, return EFalse if it isn't present
-search is regardless of screen mode.
-@internalComponent
-*/
-TBool CApaAppListServSession::FindAppInList(CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid)
-	{
-	// Look for the app with aAppUid in the app list we keep
-	const CApaAppList& list = iAppList;
-	aApp = list.AppDataByUid(aAppUid);
-	if (aApp)
-		aEntry = aApp->AppEntry();
-	
-	// If the app list is currently in flux, try to nail down the app by looking for it specifically
-	const TBool appPendingOnLangChange = (aApp && list.IsLanguageChangePending() && aApp->IsPending());	
-	if ((!aApp || appPendingOnLangChange) && !list.IsIdleUpdateComplete())
-		{
-		// 1. App wasn't found, but an app scan is currently in progress,
-		// so try to find and add the specific app we're looking for to the list
-		
-		// 2. On language change event, current app scan could not yet update the found app, 
-		// so try to update the specific app we're looking for, in the list.
-		if(aAppUid != KNullUid)
-			{
-			CApaAppData* app = NULL;
-			TRAPD(err, app = FindSpecificAppL(aAppUid));
-			if (!err && app)
-				{
-				// app has been found and added to the app list
-				aApp = app;
-				aEntry = aApp->AppEntry();
-				}
- 			}
- 		}
-
-	return (aApp != NULL);
-	}
 
 CApaAppData* CApaAppListServSession::FindSpecificAppL(TUid aAppUid)
 	{
-	//Scans the drives and folder lists for the specific app
-	CApaAppRegFinder* regFinder = CApaAppRegFinder::NewLC(iFs);
-	CApaAppData* app = iAppList.FindAndAddSpecificAppL(regFinder, aAppUid);
-	CleanupStack::PopAndDestroy(regFinder);
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    CApaAppData* app = iAppList.FindAndAddSpecificAppL(aAppUid);	
+#else
+    //Scans the drives and folder lists for the specific app
+    CApaAppRegFinder* regFinder = CApaAppRegFinder::NewLC(iFs);    
+    CApaAppData* app = iAppList.FindAndAddSpecificAppL(regFinder, aAppUid);
+    CleanupStack::PopAndDestroy(regFinder);
+#endif
 	return app;
 	}
 
@@ -1761,34 +1978,79 @@
 	else
 		{
 		const TBool completeImmediatelyIfNoScanImpendingOrInProgress=aMessage.Int0();
-		if ((!completeImmediatelyIfNoScanImpendingOrInProgress) ||
-			iAppArcSrv.AppFsMonitor().AnyNotificationImpending() ||
-			iAppList.AppScanInProgress())
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+        if ((!completeImmediatelyIfNoScanImpendingOrInProgress) ||
+            iAppList.AppScanInProgress())   
+#else
+        if ((!completeImmediatelyIfNoScanImpendingOrInProgress) ||
+            iAppArcSrv.AppFsMonitor().AnyNotificationImpending() ||
+            iAppList.AppScanInProgress())		
+#endif
 			iNotifyMessage=aMessage;
 		else
 			aMessage.Complete(KErrNone);
 		}
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
+	iNotificationRequested=ETrue;
+#endif	
 	}
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+void CApaAppArcServSession::NotifyClients(TInt aReason, CArrayFixFlat<TApaAppUpdateInfo>* aUpdatedAppsInfo)
+#else
 void CApaAppArcServSession::NotifyClients(TInt aReason)
+#endif
+
 	{
-	iAppListSession->NotifyClients(aReason);
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	iAppListSession->NotifyClients(aReason, aUpdatedAppsInfo);
+#else
+	iAppListSession->NotifyClients(aReason);	
+#endif
 	}
 
+
 void CApaAppListServSession::CancelNotify()
 	{
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK     
+	NotifyClients(KErrCancel, NULL);
+#else
 	NotifyClients(KErrCancel);
+#endif
 	}
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+void CApaAppListServSession::NotifyClients(TInt aReason, CArrayFixFlat<TApaAppUpdateInfo>* aUpdatedAppsInfo)
+#else
 void CApaAppListServSession::NotifyClients(TInt aReason)
+#endif
 	{
 	if (!iNotifyMessage.IsNull())
 		iNotifyMessage.Complete(aReason);
 	
 	//Notify client for scan complete.
 	NotifyScanComplete();
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+	if(aUpdatedAppsInfo && iNotificationRequested)
+	    {
+        //Append the updated applications information to iAppsUpdated
+        TInt count=aUpdatedAppsInfo->Count();
+        for(TInt index=0; index<count; index++)
+            {
+            TRAPD(err, iAppsUpdated.AppendL((*aUpdatedAppsInfo)[index]));
+            if(err != KErrNone)
+                {
+                iAppsUpdated.Reset();
+                break;
+                }
+            }
+	    }
+#endif	
 	}
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 void CApaAppListServSession::AppInfoProvidedByRegistrationFileL(const RMessage2& aMessage)
 	{
 	// get UID of required app
@@ -1801,6 +2063,8 @@
 	TPckgC<TBool> pckg(registrationFileUsed);
 	aMessage.WriteL(1, pckg);
 	}
+#endif
+
 
 void CApaAppListServSession::IconFileNameL(const RMessage2& aMessage)
 	{
@@ -1810,20 +2074,27 @@
 	// locate app in list
 	const CApaAppData& app = FindAppInListL(uid);
 
-	if (!app.RegistrationFileUsed())
-		User::Leave(KErrNotSupported);
-	else
-		{
-		TPtrC iconFileName(app.IconFileName());
-		if (iconFileName.Length() == 0)
-			User::Leave(KErrNotFound);
-		else
-			{
-			TFileName fileName = iconFileName;
-			TPckgC<TFileName> pckg(fileName);
-			aMessage.WriteL(1, pckg);
-			}
-		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+	if (!app.RegistrationFileUsed())     
+	    User::Leave(KErrNotSupported);     
+	 else     
+	 { 
+#endif
+	 
+        TPtrC iconFileName(app.IconFileName());
+        if (iconFileName.Length() == 0)
+            User::Leave(KErrNotFound);
+        else
+            {
+            TFileName fileName = iconFileName;
+            TPckgC<TFileName> pckg(fileName);
+            aMessage.WriteL(1, pckg);
+            }
+        
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	 }
+#endif
+	
 	}
 
 void CApaAppListServSession::ViewIconFileNameL(const RMessage2& aMessage)
@@ -1838,31 +2109,38 @@
 	// locate app in list
 	const CApaAppData& app = FindAppInListL(uid);
 
-	if (!app.RegistrationFileUsed())
-		User::Leave(KErrNotSupported);
-	else
-		{
-		const CArrayPtr<CApaAppViewData>& viewDataArray = *app.Views();
-		const TInt count = viewDataArray.Count();
-		for (TInt ii=0; ii<count; ii++)
-			{
-			const CApaAppViewData& appViewData = *viewDataArray[ii];
-			if (appViewData.Uid() == viewUid)
-				{
-				viewIconFileName.Set(appViewData.IconFileName());
-				break;
-				}
-			}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+    if (!app.RegistrationFileUsed())     
+        User::Leave(KErrNotSupported);     
+     else     
+     { 
+#endif
+	
+        const CArrayPtr<CApaAppViewData>& viewDataArray = *app.Views();
+        const TInt count = viewDataArray.Count();
+        for (TInt ii=0; ii<count; ii++)
+            {
+            const CApaAppViewData& appViewData = *viewDataArray[ii];
+            if (appViewData.Uid() == viewUid)
+                {
+                viewIconFileName.Set(appViewData.IconFileName());
+                break;
+                }
+            }
+    
+        if (viewIconFileName.Length() == 0)
+            User::Leave(KErrNotFound);
+        else
+            {
+            TFileName fileName = viewIconFileName;
+            TPckgC<TFileName> pckg(fileName);
+            aMessage.WriteL(2, pckg);
+            }
 
-		if (viewIconFileName.Length() == 0)
-			User::Leave(KErrNotFound);
-		else
-			{
-			TFileName fileName = viewIconFileName;
-			TPckgC<TFileName> pckg(fileName);
-			aMessage.WriteL(2, pckg);
-			}
-		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+     }
+#endif
+    
 	}
 
 void CApaAppArcServSession::GetAppServicesL(const RMessage2& aMessage)
@@ -2061,9 +2339,87 @@
 		{
 		iNotifyOnScanCompleteMsg.Complete(KErrNone);
 		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	iNonNativeApplicationsManager->NotifyScanComplete();
+#endif	
 	} //lint !e1762 Suppress member function could be made const
 	
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+//Update applist based on the information provided by the installers.
+void CApaAppListServSession::UpdateAppListL(const RMessage2& aMessage)
+{
+    //Create the update info array from the buffer.
+    TInt bufferSize = aMessage.GetDesLength(0);
+    User::LeaveIfError(bufferSize);
+    HBufC8* const buffer=HBufC8::NewLC(bufferSize);
+    TPtr8 buffer_asWritable(buffer->Des());
+    aMessage.ReadL(0,buffer_asWritable);
+        
+    RDesReadStream readStream(*buffer);
+    CleanupClosePushL(readStream);
+    const TUint count=readStream.ReadUint32L();
+
+    RArray<TApaAppUpdateInfo> *appUpdateInfo=new (ELeave) RArray<TApaAppUpdateInfo>(5);
+    CleanupStack::PushL(appUpdateInfo);
+    
+    for(TUint index=0; index<count; index++)
+        {
+        TApaAppUpdateInfo appInfo;
+        readStream>>appInfo;
+        appUpdateInfo->AppendL(appInfo);
+        }
+    CleanupStack::Pop(appUpdateInfo);
+    CleanupStack::PopAndDestroy(2, buffer); //delete readStream, buffer
+    
+    iAppArcSrv.UpdateAppListL(appUpdateInfo, TUid::Uid(aMessage.SecureId()));
+}
+
+
+void CApaAppListServSession::UpdatedAppsInfoL(const RMessage2& aMessage)
+    {
+    //Read the buffer size
+    TInt sizeOfBuffer=aMessage.Int1();
+    TInt count=iAppsUpdated.Count();
+    TInt sizeRequired= sizeof(TInt)+(sizeof(TApaAppUpdateInfo) * count);
+
+    TPckgBuf<TInt> pckg(sizeRequired);
+    
+    //If size of the buffer is not enough write the required size and leave.
+    if(sizeOfBuffer<sizeRequired)
+        {
+        aMessage.WriteL(1, pckg);    
+        User::Leave(KErrOverflow);
+        }
+    
+    //If the passed buffer size is enough, create a buffer to write updates application information.
+    CBufFlat* buffer=CBufFlat::NewL(sizeRequired);
+    CleanupStack::PushL(buffer);
+    buffer->ExpandL(0, sizeRequired);
+    
+    RBufWriteStream writeStream;
+    writeStream.Open(*buffer);
+    
+    //Write count to stream.
+    writeStream.WriteUint32L(count);
+    
+    //Write updated applications information to stream.
+    for(TInt index=0; index<count; index++)
+        {
+        writeStream<<iAppsUpdated[index];
+        }
+    //Write the buffer into passed buffer.
+    aMessage.WriteL(0, buffer->Ptr(0));
+    //Write size of the buffer
+    aMessage.WriteL(1, pckg);
+    
+    CleanupStack::PopAndDestroy(buffer); 
+    iAppsUpdated.Reset();
+    iNotificationRequested=EFalse;
+    }
+#endif
+
 // TSizeArrayItemWriter
 
 TInt TSizeArrayItemWriter::ArrayItemCount() const
--- a/appfw/apparchitecture/apserv/APSSES.H	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apserv/APSSES.H	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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,7 +44,12 @@
 	void NotifyScanComplete();
 	void SetNotify(const RMessage2& aMessage);
 	void CancelNotify();
-	void NotifyClients(TInt aReason);
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
+	void NotifyClients(TInt aReason, CArrayFixFlat<TApaAppUpdateInfo>* aUpdatedAppsInfo);
+#else
+    void NotifyClients(TInt aReason);
+#endif	
 	
 	void NotifyClientForCompletionOfListPopulation();
 	void CancelListPopulationCompleteObserver();
@@ -99,6 +104,11 @@
 	
 	void ApplicationLanguageL(const RMessage2& aMessage);
 	void SetAppShortCaptionL(const RMessage2& aMessage);
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+	void UpdateAppListL(const RMessage2& aMessage);
+	void UpdatedAppsInfoL(const RMessage2& aMessage);	
+#endif
 private:		
 	static TInt NextDriveToScan(TInt aCurrentDrive);	
 	static TBool AppIsControlPanelItem(const CApaAppData& aAppData);
@@ -120,7 +130,9 @@
 	CApaAppList& iAppList;
 	RMessage2 iNotifyMessage;
 	RMessage2 iNotifyOnScanCompleteMsg;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
 	CApsNonNativeApplicationsManager* iNonNativeApplicationsManager;
+#endif
 	RMessage2 iCompletionOfListPopulationObserverMsg;
 		
 	TAppListType iAppListType;
@@ -130,6 +142,11 @@
 	TUint iCapabilityAttrFilterValue; // contains bit flags from TCapabilityAttribute
 	TUid iServiceUid;
 	RPointerArray<CApaAppInfo> iApaAppInfoArray;	//contains the most recent "snapshot" of the applist taken by GetNextAppL.
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	RArray<TApaAppUpdateInfo> iAppsUpdated;
+	TBool iNotificationRequested; //If its true updated application information is maintained in session object.
+#endif
 	};
 	
 	
@@ -143,7 +160,11 @@
 	virtual void ServiceL(const RMessage2 &aMessage);
 
 	void NotifyClientOfDataMappingChange();
-	void NotifyClients(TInt aReason);
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
+    void NotifyClients(TInt aReason, CArrayFixFlat<TApaAppUpdateInfo>* aUpdatedAppsInfo);
+#else
+    void NotifyClients(TInt aReason);
+#endif  
 	void NotifyScanComplete();
 	void NotifyClientForCompletionOfListPopulation();
 private:
@@ -178,8 +199,10 @@
 	void AppForDataTypeAndServiceL(const RMessage2& aMessage);
 	void AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid);
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	void RegisterNonNativeApplicationTypeL(const RMessage2& aMessage);
 	void DeregisterNonNativeApplicationTypeL(const RMessage2& aMessage);
+#endif
 
 	void GetExecutableNameGivenDocumentL(const RMessage2& aMessage);
 	void GetExecutableNameGivenDocumentPassedByFileHandleL(const RMessage2& aMessage);
--- a/appfw/apparchitecture/apserv/apsserv.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/apserv/apsserv.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -55,21 +55,22 @@
 
 	inline RWsSession& WsSession();
 	
-	inline const CApaFsMonitor& AppFsMonitor() const {return *iAppFsMonitor;}
-	
 	inline CApaScanningRuleBasedPlugIns* RuleBasedPlugIns();
 		
 	// Application list stuff
 	inline CApaAppList& AppList();
-	void UpdateApps();
-	IMPORT_C TCallBack RescanCallBack();
-	
-	void RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable);
-	void DeregisterNonNativeApplicationTypeL(TUid aApplicationType);
-	TPtrC NativeExecutableL(TUid aNonNativeApplicationType) const;
-	
+	TPtrC NativeExecutableL(TUid aNonNativeApplicationType);
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    void UpdateApps();
+    IMPORT_C TCallBack RescanCallBack();
+    void UpdateAppsByForceRegistration();   
+    void RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable);
+    void DeregisterNonNativeApplicationTypeL(TUid aApplicationType);
+    inline const CApaFsMonitor& AppFsMonitor() const {return *iAppFsMonitor;}
 	IMPORT_C void HandleInstallationStartEvent();
 	IMPORT_C void HandleInstallationEndEventL();
+#endif
 	
 	// MIME-type recognition
 	inline CApaDataRecognizer* MimeTypeRecognizer();
@@ -101,23 +102,34 @@
 	void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
 public:	//
 	IMPORT_C ~CApaAppArcServer();
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	TBool NonNativeRecovery() const;
 	void SetNonNativeRecovery(TBool aValue);
+#else
+    void UpdateAppListL(RArray<TApaAppUpdateInfo>* aAppUpdateInfo, TUid aSecureID);
+#endif
 	TBool LoadMbmIconsOnDemand() const;
-	void UpdateAppsByForceRegistration();
+
 private:
 	CApaAppArcServer(TInt aPriority);
 	void ConstructL();
 	virtual CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
-	static TInt AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr);
-	static TInt AppFsNotifyCallBack(TAny* aPtr);
 	static TInt PlugInNotifyCallBack(TAny* aPtr);
 	static TInt TypeStoreNotifyCallback(TAny* aPtr);
 	void UpdatePlugIns();
 	void UpdateTypeStore();
 	void DoUpdateTypeStoreL();
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    void InitNonNativeApplicationTypeArrayL();
+    TPtrC FindAndAddNonNativeRuntimeMappingL(TUid aNonNativeApplicationType);
+#else
+    static TInt AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr);
+    static TInt AppFsNotifyCallBack(TAny* aPtr);
 	void InternalizeNonNativeApplicationTypeArrayL();
-	void ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore=-1) const;
+    void ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore=-1) const;
+    void ConstructPathsToMonitorL();    
+#endif
 	static void DeleteLastNonNativeApplicationType(TAny* aThis);
 	void NotifyScanComplete();
 	void DeleteCustomAppInfoList();
@@ -131,7 +143,6 @@
 	CRecognitionResult* CachedRecognitionResult(const RFile& aFile, const TParseBase& aParser) const;
 	void CacheRecognitionResultL(const TParseBase& aParser, const TDataRecognitionResult& aResult);
 	void CacheRecognitionResultL(const RFile& aFile, const TParseBase& aParser, const TDataRecognitionResult& aResult);
-	void ConstructPathsToMonitorL();
 private:
 	enum
 		{
@@ -157,7 +168,9 @@
 	CApaAppList* iAppList;
 	CPeriodic* iRecognizerUnloadTimer;
 	CApaScanningDataRecognizer* iMimeTypeRecognizer;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	CApaFsMonitor* iAppFsMonitor;
+#endif
 	CApaFsMonitor* iTypeStoreMonitor;
 	CTypeStoreManager* iMimeTypeToAppMappingsManager;
 	TTime iTypeStoreModified;
@@ -174,10 +187,17 @@
 	TBool iNonNativeRecovery;
 
 	TBool iLoadRecognizersOnDemand;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	CApaAppInstallationMonitor* iAppInstallationMonitor; //CApaAppInstallationMonitor monitors installation and uninstallation of applications.
+    RBuf iNonNativeApplicationTypeRegistry;	
+    TInt iForceRegistrationStatus;
+#endif
 	TBool iLoadMbmIconsOnDemand;
-	RBuf iNonNativeApplicationTypeRegistry;
-	TInt iForceRegistrationStatus;
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    RArray<TApaAppUpdateInfo> iAppUpdateInfo;
+#endif
+	
 	};
 
 
--- a/appfw/apparchitecture/apserv/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apsexe/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/apstart/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/bwins/APFILEU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/bwins/APFILEU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -55,9 +55,9 @@
 	?reserved3@CAppSidChecker@@EAEXXZ @ 54 NONAME ABSENT ; void CAppSidChecker::reserved3(void)
 	?DriveList@CApaAppRegFinder@@QBEABV?$RArray@VTDriveUnitInfo@@@@XZ @ 55 NONAME ABSENT ; class RArray<class TDriveUnitInfo> const & CApaAppRegFinder::DriveList(void) const
 	?FindAllRemovableMediaAppsL@CApaAppRegFinder@@QAEXXZ @ 56 NONAME ABSENT ; void CApaAppRegFinder::FindAllRemovableMediaAppsL(void)
-	??1CApaAppInstallationMonitor@@UAE@XZ @ 57 NONAME ; CApaAppInstallationMonitor::~CApaAppInstallationMonitor(void)
-	?NewL@CApaAppInstallationMonitor@@SAPAV1@PAVCApaAppArcServer@@@Z @ 58  NONAME ; class CApaAppInstallationMonitor * CApaAppInstallationMonitor::NewL(class CApaAppArcServer *)
-	?Start@CApaAppInstallationMonitor@@QAEXXZ @ 59 NONAME ; void CApaAppInstallationMonitor::Start(void)
+	??1CApaAppInstallationMonitor@@UAE@XZ @ 57 NONAME ABSENT; CApaAppInstallationMonitor::~CApaAppInstallationMonitor(void)
+	?NewL@CApaAppInstallationMonitor@@SAPAV1@PAVCApaAppArcServer@@@Z @ 58  NONAME ABSENT; class CApaAppInstallationMonitor * CApaAppInstallationMonitor::NewL(class CApaAppArcServer *)
+	?Start@CApaAppInstallationMonitor@@QAEXXZ @ 59 NONAME ABSENT; void CApaAppInstallationMonitor::Start(void)
 	??1CApfMimeContentPolicy@@UAE@XZ @ 60 NONAME ; CApfMimeContentPolicy::~CApfMimeContentPolicy(void)
 	?IsClosedExtension@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 61 NONAME ; int CApfMimeContentPolicy::IsClosedExtension(class TDesC16 const &)
 	?IsClosedFileL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 62 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class RFile &)
@@ -69,5 +69,4 @@
 	?NewL@CApfMimeContentPolicy@@SAPAV1@XZ @ 68 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(void)
 	?NewLC@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 69 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(class RFs &)
 	?NewLC@CApfMimeContentPolicy@@SAPAV1@XZ @ 70 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(void)
-	_E32Dll=__E32Dll	; Entry point for emulation
 
--- a/appfw/apparchitecture/bwins/APGRFXU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/bwins/APGRFXU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -331,7 +331,15 @@
 	?IsPending@CApaAppData@@QBEHXZ @ 330 NONAME ABSENT ; int CApaAppData::IsPending(void) const
 	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 331 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
 	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 332 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
-	X @ 333 NONAME ABSENT ;
-	X @ 334 NONAME ABSENT ;
+	X @ 333 NONAME ABSENT
+	X @ 334 NONAME ABSENT
 	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 335 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
-	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @336 NONAME;TInt RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 336 NONAME ; TInt RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
+	??0TApaAppUpdateInfo@@QAE@XZ @ 337 NONAME ; TApaAppUpdateInfo::TApaAppUpdateInfo(void)
+	?InternalizeL@TApaAppUpdateInfo@@QAEXAAVRReadStream@@@Z @ 338 NONAME ; void TApaAppUpdateInfo::InternalizeL(class RReadStream &)
+	?UpdateAppListL@RApaLsSession@@QAEHAAV?$RArray@VTApaAppUpdateInfo@@@@@Z @ 339 NONAME ; int RApaLsSession::UpdateAppListL(class RArray<class TApaAppUpdateInfo> &)
+	?ExternalizeL@TApaAppUpdateInfo@@QBEXAAVRWriteStream@@@Z @ 340 NONAME ; void TApaAppUpdateInfo::ExternalizeL(class RWriteStream &) const
+	??0TApaAppUpdateInfo@@QAE@VTUid@@W4TApaAppAction@0@@Z @ 341 NONAME ; TApaAppUpdateInfo::TApaAppUpdateInfo(class TUid, enum TApaAppUpdateInfo::TApaAppAction)
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VCApplicationRegistrationData@Usif@@@@@Z @ 342 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class Usif::CApplicationRegistrationData> const &)
+	?UpdatedAppsInfoL@RApaLsSession@@QAEHAAV?$RArray@VTApaAppUpdateInfo@@@@@Z @ 343 NONAME ; int RApaLsSession::UpdatedAppsInfoL(class RArray<class TApaAppUpdateInfo> &)
+
--- a/appfw/apparchitecture/bwins/APSERVU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/bwins/APSERVU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -16,11 +16,11 @@
 	??1CUpdatedAppsList@@UAE@XZ @ 15 NONAME ABSENT ; CUpdatedAppsList::~CUpdatedAppsList(void)
 	?CloseAndDeletePermanentStore@CUpdatedAppsList@@QAEXXZ @ 16 NONAME ABSENT ; void CUpdatedAppsList::CloseAndDeletePermanentStore(void)
 	?IsInList@CUpdatedAppsList@@QBEHABVTDesC16@@@Z @ 17 NONAME ABSENT ; int CUpdatedAppsList::IsInList(class TDesC16 const &) const
-	?RescanCallBack@CApaAppArcServer@@QAE?AVTCallBack@@XZ @ 18 NONAME ; class TCallBack CApaAppArcServer::RescanCallBack(void)
+	?RescanCallBack@CApaAppArcServer@@QAE?AVTCallBack@@XZ @ 18 NONAME ABSENT; class TCallBack CApaAppArcServer::RescanCallBack(void)
 	?KApaLoadDataRecognizersOnDemand@@3HB @ 19 NONAME DATA 4 ; int const KApaLoadDataRecognizersOnDemand
 	?KApaUnloadRecognizersTimeout@@3HB @ 20 NONAME DATA 4 ; int const KApaUnloadRecognizersTimeout
-	?HandleInstallationEndEventL@CApaAppArcServer@@QAEXXZ @ 21 NONAME ; void CApaAppArcServer::HandleEndUninstallEventL(void)
-	?HandleInstallationStartEvent@CApaAppArcServer@@QAEXXZ @ 22 NONAME ; void CApaAppArcServer::HandleStartUninstallEvent(void)
+	?HandleInstallationEndEventL@CApaAppArcServer@@QAEXXZ @ 21 NONAME ABSENT; void CApaAppArcServer::HandleEndUninstallEventL(void)
+	?HandleInstallationStartEvent@CApaAppArcServer@@QAEXXZ @ 22 NONAME ABSENT; void CApaAppArcServer::HandleStartUninstallEvent(void)
 	?KApaDrivesToMonitor@@3HB @ 23 NONAME ; int const KApaDrivesToMonitor
 	?KApaLoadMbmIconsOnDemand@@3HB @ 24 NONAME ; int const KApaLoadMbmIconsOnDemand
 
--- a/appfw/apparchitecture/bwins/TICONFORLEAKSu.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/bwins/TICONFORLEAKSu.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -77,7 +77,7 @@
 	?Exists@TApaTask@@QBEHXZ @ 76 NONAME ; int TApaTask::Exists(void) const
 	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 77 NONAME ; void CApaMaskedBitmap::ExternalizeL(class RWriteStream &) const
 	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 78 NONAME ; class TBuf<256> CApaSystemControl::FileName(void) const
-	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 79 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 79 NONAME ABSENT ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
 	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 80 NONAME ; class TApaTask TApaTaskList::FindApp(class TDesC16 const &)
 	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 81 NONAME ; class TApaTask TApaTaskList::FindApp(class TUid)
 	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 82 NONAME ; void CApaWindowGroupName::FindByAppUid(class TUid, class RWsSession &, int &)
@@ -87,7 +87,7 @@
 	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 86 NONAME ; class TApaTask TApaTaskList::FindDoc(class TDesC16 const &)
 	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 87 NONAME ; class CApaAppData * CApaAppList::FirstApp(int) const
 	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 88 NONAME ; class CApaAppData * CApaAppList::FirstApp(void) const
-	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 89 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 89 NONAME ABSENT; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
 	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 90 NONAME ; class RFs * RApaLsSession::FsSession(void)
 	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 91 NONAME ; int RApaLsSession::GetAcceptedConfidence(int &) const
 	?GetAllApps@RApaLsSession@@QBEHH@Z @ 92 NONAME ; int RApaLsSession::GetAllApps(int) const
@@ -150,11 +150,11 @@
 	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 149 NONAME ; int CApaAppList::IsFirstScanComplete(void) const
 	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 150 NONAME ; int CApaAppList::IsIdleUpdateComplete(void) const
 	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 151 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
-	?IsPending@CApaAppData@@QBEHXZ @ 152 NONAME ; int CApaAppData::IsPending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 152 NONAME ABSENT ; int CApaAppData::IsPending(void) const
 	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 153 NONAME ; int RApaLsSession::IsProgram(class TDesC16 const &, int &) const
 	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 154 NONAME ; int CApaWindowGroupName::IsSystem(void) const
 	?KillTask@TApaTask@@QAEXXZ @ 155 NONAME ; void TApaTask::KillTask(void)
-	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 156 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 156 NONAME ABSENT ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
 	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 157 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
 	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 158 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
 	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 159 NONAME ; class CFbsBitmap * CApaMaskedBitmap::Mask(void) const
@@ -162,7 +162,7 @@
 	?MinApplicationStackSize@@YAIXZ @ 161 NONAME ; unsigned int MinApplicationStackSize(void)
 	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 162 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::New(class RWsSession const &, class HBufC16 *)
 	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 163 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
-	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 164 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 164 NONAME ABSENT ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
 	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 165 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
 	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 166 NONAME ; class CApaAppListNotifier * CApaAppListNotifier::NewL(class MApaAppListServObserver *, enum CActive::TPriority)
 	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 167 NONAME ; class CApaDoor * CApaDoor::NewL(class RFs &, class CApaDocument &, class TSize const &)
@@ -194,7 +194,7 @@
 	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 193 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &) const
 	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 194 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
 	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 195 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
-	?PurgeL@CApaAppList@@QAEXXZ @ 196 NONAME ; void CApaAppList::PurgeL(void)
+	?PurgeL@CApaAppList@@QAEXXZ @ 196 NONAME ABSENT ; void CApaAppList::PurgeL(void)
 	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 197 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
 	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 198 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
 	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 199 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const
@@ -208,12 +208,12 @@
 	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 207 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
 	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 208 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
 	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 209 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
-	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 210 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
-	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 211 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
-	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 212 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 210 NONAME ABSENT ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 211 NONAME ABSENT ; int CApaAppData::RegistrationFileUsed(void) const
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 212 NONAME ABSENT; void CApaAppList::ResetForcedRegistrations(void)
 	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 213 NONAME ; int CApaWindowGroupName::RespondsToShutdownEvent(void) const
 	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 214 NONAME ; int CApaWindowGroupName::RespondsToSwitchFilesEvent(void) const
-	?RestartScanL@CApaAppList@@QAEXXZ @ 215 NONAME ; void CApaAppList::RestartScanL(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 215 NONAME ABSENT ; void CApaAppList::RestartScanL(void)
 	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 216 NONAME ; void CApaDoor::RestoreL(class CStreamStore const &, class TStreamId)
 	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 217 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
 	?ScreenMode@CApaAppViewData@@QBEHXZ @ 218 NONAME ; int CApaAppViewData::ScreenMode(void) const
@@ -275,7 +275,7 @@
 	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 274 NONAME ; void CApaAppList::StartIdleUpdateL(void)
 	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 275 NONAME ABSENT ; int StartupApaServer(class MApaAppStarter &)
 	?StartupApaServerProcess@@YAHXZ @ 276 NONAME ; int StartupApaServerProcess(void)
-	?StopScan@CApaAppList@@QAEXH@Z @ 277 NONAME ; void CApaAppList::StopScan(int)
+	?StopScan@CApaAppList@@QAEXH@Z @ 277 NONAME ABSENT ; void CApaAppList::StopScan(int)
 	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 278 NONAME ABSENT ; void CApaAppInfoFileWriter::StoreL(void)
 	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 279 NONAME ; int TApaTask::SwitchCreateFile(class TDesC16 const &)
 	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 280 NONAME ; int TApaTask::SwitchOpenFile(class TDesC16 const &)
@@ -298,7 +298,7 @@
 	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 297 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
 	?DataTypes@TApaAppServiceInfo@@QAEAAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 298 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> & TApaAppServiceInfo::DataTypes(void)
 	??0TApaAppIdentifier@@QAE@XZ @ 299 NONAME ; TApaAppIdentifier::TApaAppIdentifier(void)
-	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 300 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 300 NONAME ABSENT; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
 	?ExternalizeL@TApaAppCapability@@QBEXAAVRWriteStream@@@Z @ 301 NONAME ; void TApaAppCapability::ExternalizeL(class RWriteStream &) const
 	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@11@Z @ 302 NONAME ; TApaAppInfo::TApaAppInfo(class TUid, class TBuf<256> const &, class TBuf<256> const &, class TBuf<256> const &)
 	?AddEmbeddability@TApaEmbeddabilityFilter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 303 NONAME ; void TApaEmbeddabilityFilter::AddEmbeddability(enum TApaAppCapability::TEmbeddability)
@@ -330,6 +330,21 @@
 	??0TApaAppInfo@@QAE@XZ @ 329 NONAME ; TApaAppInfo::TApaAppInfo(void)
 	??0TApaAppViewInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@H@Z @ 330 NONAME ; TApaAppViewInfo::TApaAppViewInfo(class TUid, class TBuf<256> const &, int)
 	??0TApaAppServiceInfo@@QAE@VTUid@@PAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@PAVHBufC8@@@Z @ 331 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(class TUid, class CArrayFixFlat<class TDataTypeWithPriority> *, class HBufC8 *)
-	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 332 NONAME ; int CApaAppList::AppListUpdatePending(void)
-	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @333 NONAME ; TInt RecognizeData(class TDesC8 const &, class TDataRecognitionResult & ) const
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 332 NONAME ABSENT ; int CApaAppList::AppListUpdatePending(void)
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 333 NONAME ; TInt RecognizeData(class TDesC8 const &, class TDataRecognitionResult & ) const
 	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 334 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@VTUid@@@Z @ 335 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class TUid)
+	?NewL@CApaAppData@@SAPAV1@ABVCApplicationRegistrationData@Usif@@AAVRFs@@ABVRSoftwareComponentRegistry@3@@Z @ 336 NONAME ; class CApaAppData * CApaAppData::NewL(class Usif::CApplicationRegistrationData const &, class RFs &, class Usif::RSoftwareComponentRegistry const &)
+	?InitializeApplistL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 337 NONAME ; void CApaAppList::InitializeApplistL(class MApaAppListObserver *)
+	??0TApaAppUpdateInfo@@QAE@XZ @ 338 NONAME ; TApaAppUpdateInfo::TApaAppUpdateInfo(void)
+	?InternalizeL@TApaAppUpdateInfo@@QAEXAAVRReadStream@@@Z @ 339 NONAME ; void TApaAppUpdateInfo::InternalizeL(class RReadStream &)
+	?UpdateAppListL@RApaLsSession@@QAEHAAV?$RArray@VTApaAppUpdateInfo@@@@@Z @ 340 NONAME ; int RApaLsSession::UpdateAppListL(class RArray<class TApaAppUpdateInfo> &)
+	?ExternalizeL@TApaAppUpdateInfo@@QBEXAAVRWriteStream@@@Z @ 341 NONAME ; void TApaAppUpdateInfo::ExternalizeL(class RWriteStream &) const
+	??0TApaAppUpdateInfo@@QAE@VTUid@@W4TApaAppAction@0@@Z @ 342 NONAME ; TApaAppUpdateInfo::TApaAppUpdateInfo(class TUid, enum TApaAppUpdateInfo::TApaAppAction)
+	?UpdateApplistByForceRegAppsL@CApaAppList@@QAEXAAV?$RPointerArray@VCApplicationRegistrationData@Usif@@@@@Z @ 343 NONAME ; void CApaAppList::UpdateApplistByForceRegAppsL(class RPointerArray<class Usif::CApplicationRegistrationData> &)
+	?UpdatedAppsInfo@CApaAppList@@QAEPAV?$CArrayFixFlat@VTApaAppUpdateInfo@@@@XZ @ 344 NONAME ; class CArrayFixFlat<class TApaAppUpdateInfo> * CApaAppList::UpdatedAppsInfo(void)
+	?UpdateApplistL@CApaAppList@@QAEXPAVMApaAppListObserver@@PAV?$RArray@VTApaAppUpdateInfo@@@@VTUid@@@Z @ 345 NONAME ; void CApaAppList::UpdateApplistL(class MApaAppListObserver *, class RArray<class TApaAppUpdateInfo> *, class TUid)
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VCApplicationRegistrationData@Usif@@@@@Z @ 346 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class Usif::CApplicationRegistrationData> const &)
+	?UpdatedAppsInfoL@RApaLsSession@@QAEHAAV?$RArray@VTApaAppUpdateInfo@@@@@Z @ 347 NONAME ; int RApaLsSession::UpdatedAppsInfoL(class RArray<class TApaAppUpdateInfo> &)
+	?IsLangChangePending@CApaAppData@@QAEHXZ @ 348 NONAME ; int CApaAppData::IsLangChangePending(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/bwins/apfile_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,73 @@
+EXPORTS
+	??0CApaScanningFileRecognizer@@IAE@AAVRFs@@PAVMApaAppStarter@@@Z @ 1 NONAME ABSENT 
+	??1CApaAppLocatorProxy@@UAE@XZ @ 2 NONAME ABSENT
+	??1CApaScanningAppFinder@@UAE@XZ @ 3 NONAME ABSENT
+	??1CApaScanningFileRecognizer@@UAE@XZ @ 4 NONAME ABSENT 
+	?ConstructL@CApaScanningFileRecognizer@@IAEXXZ @ 5 NONAME ABSENT 
+	?DefaultAppInfoFileName@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 6 NONAME ABSENT
+	?FindAllAppsL@CApaScanningAppFinder@@UAEXXZ @ 7 NONAME ABSENT
+	?FindAppL@CApaScanningAppFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 8 NONAME ABSENT
+	?GetAppCapabilityByUid@CApaAppLocatorProxy@@UAEHAAVTDes8@@VTUid@@@Z @ 9 NONAME ABSENT
+	?GetAppEntryByUid@CApaAppLocatorProxy@@UAEHAAVTApaAppEntry@@VTUid@@@Z @ 10 NONAME ABSENT
+	?NewL@CApaAppLocatorProxy@@SAPAV1@AAVRFs@@@Z @ 11 NONAME ABSENT
+	?NewL@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 12 NONAME ABSENT
+	?NewL@CApaScanningFileRecognizer@@SAPAV1@AAVRFs@@PAVMApaAppStarter@@@Z @ 13 NONAME ABSENT 
+	?NewLC@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 14 NONAME ABSENT
+	?NextL@CApaScanningAppFinder@@UAEHAAVTApaAppEntry@@@Z @ 15 NONAME ABSENT
+	?RecognizerCount@CApaScanningFileRecognizer@@QAEHXZ @ 16 NONAME ABSENT 
+	?RecognizerListLC@CApaScanningFileRecognizer@@QBEPAV?$CArrayFixFlat@VRRecognizer@CApaScanningFileRecognizer@@@@XZ @ 17 NONAME ABSENT 
+	?ScanForRecognizersL@CApaScanningFileRecognizer@@QAEXXZ @ 18 NONAME ABSENT 
+	?SetRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 19 NONAME ABSENT
+	?TempPath@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 20 NONAME ABSENT
+	?TempPath@Apfile@@SA?AVTPtrC16@@XZ @ 21 NONAME ABSENT
+	??ACApaScanningFileRecognizer@@QBEABVRRecognizer@0@H@Z @ 22 NONAME ABSENT ; class CApaScanningFileRecognizer::RRecognizer const & CApaScanningFileRecognizer::operator[](int) const
+	?SetRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 23 NONAME ABSENT
+	?UpdateCounter@CApaScanningFileRecognizer@@QBEHXZ @ 24 NONAME ABSENT 
+	??1CApaScanningControlFinder@@UAE@XZ @ 25 NONAME ABSENT
+	?DefaultAppInfoFileName@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 26 NONAME ABSENT
+	?FindAllAppsL@CApaScanningControlFinder@@UAEXXZ @ 27 NONAME ABSENT
+	?FindAppL@CApaScanningControlFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 28 NONAME ABSENT
+	?NewL@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 29 NONAME ABSENT
+	?NewLC@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 30 NONAME ABSENT
+	?NextL@CApaScanningControlFinder@@UAEHAAVTApaAppEntry@@@Z @ 31 NONAME ABSENT
+	?TempPath@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 32 NONAME ABSENT
+	?SetEcomRecognizerL@CApaScanningFileRecognizer@@QAEXABVRRecognizer@1@@Z @ 33 NONAME ABSENT 
+	?SetEcomRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VRRecognizer@CApaScanningFileRecognizer@@@@@Z @ 34 NONAME ABSENT 
+	?FindAllAppsL@CApaAppRegFinder@@QAEXXZ @ 35 NONAME ABSENT ; void CApaAppRegFinder::FindAllAppsL(void)
+	?FindAppL@CApaAppRegFinder@@QAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 36 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::FindAppL(class TDesC16 const &, class TUid)
+	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 37 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
+	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
+	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 39 NONAME ABSENT ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class RPointerArray<class HBufC16> const &)
+	?TempPath@CApaAppRegFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 40 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::TempPath(void) const
+	??1CAppLaunchChecker@@UAE@XZ @ 41 NONAME ; CAppLaunchChecker::~CAppLaunchChecker(void)
+	??ACApaScanningRuleBasedPlugIns@@QBEPAVCAppLaunchChecker@@H@Z @ 42 NONAME ; class CAppLaunchChecker * CApaScanningRuleBasedPlugIns::operator[](int) const
+	??1CApaScanningRuleBasedPlugIns@@UAE@XZ @ 43 NONAME ; CApaScanningRuleBasedPlugIns::~CApaScanningRuleBasedPlugIns(void)
+	?NewL@CApaScanningRuleBasedPlugIns@@SAPAV1@XZ @ 44 NONAME ; class CApaScanningRuleBasedPlugIns * CApaScanningRuleBasedPlugIns::NewL(void)
+	?ScanForRuleBasedPlugInsL@CApaScanningRuleBasedPlugIns@@QAEXXZ @ 45 NONAME ; void CApaScanningRuleBasedPlugIns::ScanForRuleBasedPlugInsL(void)
+	?ImplementationCount@CApaScanningRuleBasedPlugIns@@QBEHXZ @ 46 NONAME ; int CApaScanningRuleBasedPlugIns::ImplementationCount(void) const
+	?Reserved_1@CAppLaunchChecker@@EAEXXZ @ 47 NONAME ; void CAppLaunchChecker::Reserved_1(void)
+	?Reserved_2@CAppLaunchChecker@@EAEXXZ @ 48 NONAME ; void CAppLaunchChecker::Reserved_2(void)
+	?Reserved_3@CAppLaunchChecker@@EAEXXZ @ 49 NONAME ; void CAppLaunchChecker::Reserved_3(void)
+	??1CAppSidChecker@@UAE@XZ @ 50 NONAME ABSENT ; CAppSidChecker::~CAppSidChecker(void)
+	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 51 NONAME ABSENT ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
+	?reserved1@CAppSidChecker@@EAEXXZ @ 52 NONAME ABSENT ; void CAppSidChecker::reserved1(void)
+	?reserved2@CAppSidChecker@@EAEXXZ @ 53 NONAME ABSENT ; void CAppSidChecker::reserved2(void)
+	?reserved3@CAppSidChecker@@EAEXXZ @ 54 NONAME ABSENT ; void CAppSidChecker::reserved3(void)
+	?DriveList@CApaAppRegFinder@@QBEABV?$RArray@VTDriveUnitInfo@@@@XZ @ 55 NONAME ABSENT ; class RArray<class TDriveUnitInfo> const & CApaAppRegFinder::DriveList(void) const
+	?FindAllRemovableMediaAppsL@CApaAppRegFinder@@QAEXXZ @ 56 NONAME ABSENT ; void CApaAppRegFinder::FindAllRemovableMediaAppsL(void)
+	??1CApaAppInstallationMonitor@@UAE@XZ @ 57 NONAME ; CApaAppInstallationMonitor::~CApaAppInstallationMonitor(void)
+	?NewL@CApaAppInstallationMonitor@@SAPAV1@PAVCApaAppArcServer@@@Z @ 58  NONAME ; class CApaAppInstallationMonitor * CApaAppInstallationMonitor::NewL(class CApaAppArcServer *)
+	?Start@CApaAppInstallationMonitor@@QAEXXZ @ 59 NONAME ; void CApaAppInstallationMonitor::Start(void)
+	??1CApfMimeContentPolicy@@UAE@XZ @ 60 NONAME ; CApfMimeContentPolicy::~CApfMimeContentPolicy(void)
+	?IsClosedExtension@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 61 NONAME ; int CApfMimeContentPolicy::IsClosedExtension(class TDesC16 const &)
+	?IsClosedFileL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 62 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class RFile &)
+	?IsClosedFileL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 63 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class TDesC16 const &)
+	?IsClosedType@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 64 NONAME ; int CApfMimeContentPolicy::IsClosedType(class TDesC16 const &)
+	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 65 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class RFile &)
+	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 66 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class TDesC16 const &)
+	?NewL@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 67 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(class RFs &)
+	?NewL@CApfMimeContentPolicy@@SAPAV1@XZ @ 68 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(void)
+	?NewLC@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 69 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(class RFs &)
+	?NewLC@CApfMimeContentPolicy@@SAPAV1@XZ @ 70 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(void)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/bwins/apgrfx_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,344 @@
+EXPORTS
+	??0RApaLsSession@@QAE@XZ @ 1 NONAME ; public: __thiscall RApaLsSession::RApaLsSession(void)
+	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 2 NONAME ; public: __thiscall TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
+	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 3 NONAME ; public: __thiscall TApaTask::TApaTask(class RWsSession &)
+	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 4 NONAME ; public: __thiscall TApaTaskList::TApaTaskList(class RWsSession &)
+	??1CApaAppInfoFileReader@@UAE@XZ @ 5 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileReader::~CApaAppInfoFileReader(void)
+	??1CApaAppInfoFileWriter@@UAE@XZ @ 6 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
+	??1CApaAppList@@UAE@XZ @ 7 NONAME ABSENT ; public: virtual __thiscall CApaAppList::~CApaAppList(void)
+	??1CApaDoor@@UAE@XZ @ 8 NONAME ; public: virtual __thiscall CApaDoor::~CApaDoor(void)
+	??1CApaMaskedBitmap@@UAE@XZ @ 9 NONAME ; public: virtual __thiscall CApaMaskedBitmap::~CApaMaskedBitmap(void)
+	??1CApaWindowGroupName@@UAE@XZ @ 10 NONAME ; public: virtual __thiscall CApaWindowGroupName::~CApaWindowGroupName(void)
+	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 11 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddCaptionL(enum TLanguage,class TDesC16 const &)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 12 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 13 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class TDesC16 const &)
+	?AppCount@RApaLsSession@@QBEHAAH@Z @ 14 NONAME ; public: int __thiscall RApaLsSession::AppCount(int &)const 
+	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 15 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::AppDataByUid(class TUid)const 
+	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 16 NONAME ABSENT ; public: class TApaAppEntry  __thiscall CApaAppData::AppEntry(void)const 
+	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 17 NONAME ; public: class TUid  __thiscall CApaWindowGroupName::AppUid(void)const 
+	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 18 NONAME ; public: class TUid  __thiscall CApaDoor::AppUidL(void)const 
+	?BringToForeground@TApaTask@@QAEXXZ @ 19 NONAME ; public: void __thiscall TApaTask::BringToForeground(void)
+	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 20 NONAME ABSENT ; public: void __thiscall CApaAppData::Capability(class TDes8 &)const 
+	?Capability@CApaAppInfoFileReader@@QBEXAAVTDes8@@@Z @ 21 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::Capability(class TDes8 &)const 
+	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 22 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::Caption(void)const 
+	?CaptionL@CApaAppInfoFileReader@@QAE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 23 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAppInfoFileReader::CaptionL(enum TLanguage)
+	?Connect@RApaLsSession@@QAEHXZ @ 24 NONAME ; public: int __thiscall RApaLsSession::Connect(void)
+	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 25 NONAME ; public: void __thiscall CApaWindowGroupName::ConstructFromWgIdL(int)
+	?Count@CApaAppList@@QBEHXZ @ 26 NONAME ABSENT ; public: int __thiscall CApaAppList::Count(void)const 
+	?CreateMaskedBitmapL@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 27 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppInfoFileReader::CreateMaskedBitmapL(int)
+	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 28 NONAME ; public: int __thiscall TApaTaskList::CycleTasks(class TUid,enum TApaTaskList::TCycleDirection)
+	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 29 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::DocName(void)const 
+	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 30 NONAME ; public: int __thiscall CApaWindowGroupName::DocNameIsAFile(void)const 
+	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 31 NONAME ; public: class CApaDocument * __thiscall CApaDoor::DocumentL(int)
+	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 32 NONAME ; public: int __thiscall RApaLsSession::EmbeddableAppCount(int &)const 
+	?EndTask@TApaTask@@QAEXXZ @ 33 NONAME ; public: void __thiscall TApaTask::EndTask(void)
+	?Exists@TApaTask@@QBEHXZ @ 34 NONAME ; public: int __thiscall TApaTask::Exists(void)const 
+	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 35 NONAME ; public: void __thiscall CApaMaskedBitmap::ExternalizeL(class RWriteStream &)const 
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 36 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TDesC16 const &)
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 37 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TUid)
+	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 38 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByAppUid(class TUid,class RWsSession &,int &)
+	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 39 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByCaption(class TDesC16 const &,class RWsSession &,int &)
+	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 40 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByDocName(class TDesC16 const &,class RWsSession &,int &)
+	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 41 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindByPos(int)
+	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 42 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindDoc(class TDesC16 const &)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 43 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(void)const 
+	?GetAllApps@RApaLsSession@@QBEHXZ @ 44 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(void)const 
+	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 45 NONAME ; public: int __thiscall RApaLsSession::GetAppCapability(class TDes8 &,class TUid)const 
+	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 46 NONAME ; public: int __thiscall RApaLsSession::GetAppInfo(class TApaAppInfo &,class TUid)const 
+	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 47 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(void)const 
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 48 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &)const 
+	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall CApaMaskedBitmap::InternalizeL(class RReadStream &)
+	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 50 NONAME ; public: int __thiscall CApaWindowGroupName::IsBusy(void)const 
+	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 51 NONAME ; public: int __thiscall CApaWindowGroupName::IsSystem(void)const 
+	?KillTask@TApaTask@@QAEXXZ @ 52 NONAME ; public: void __thiscall TApaTask::KillTask(void)
+	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 53 NONAME ; public: class CFbsBitmap * __thiscall CApaMaskedBitmap::Mask(void)const 
+	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 54 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::New(class RWsSession const &,class HBufC16 *)
+	?NewL@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 55 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewL(class RFs &,class TDesC16 const &,class TUid)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 56 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 57 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CApaDocument &,class TSize const &)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 58 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CStreamStore const &,class TStreamId,class CApaProcess &)
+	?NewL@CApaMaskedBitmap@@SAPAV1@PBV1@@Z @ 59 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewL(class CApaMaskedBitmap const *)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 60 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 61 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,class TDesC16 const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 62 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,int)
+	?NewLC@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 63 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewLC(class RFs &,class TDesC16 const &,class TUid)
+	?NewLC@CApaAppInfoFileWriter@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 64 NONAME ABSENT ; public: static class CApaAppInfoFileWriter * __cdecl CApaAppInfoFileWriter::NewLC(class RFs &,class TDesC16 const &,class TUid)
+	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 65 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewLC(class RFs &,class CApaDocument &,class TSize const &)
+	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 66 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewLC(void)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 67 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 68 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,class TDesC16 const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 69 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,int)
+	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 70 NONAME ; public: virtual void __thiscall TApaPictureFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 71 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *)const 
+	?PurgeL@CApaAppList@@QAEXXZ @ 72 NONAME ABSENT ; public: void __thiscall CApaAppList::PurgeL(void)
+	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 73 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToShutdownEvent(void)const 
+	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 74 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToSwitchFilesEvent(void)const 
+	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 75 NONAME ; public: void __thiscall CApaDoor::RestoreL(class CStreamStore const &,class TStreamId)
+	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 76 NONAME ; public: void __thiscall TApaTask::SendKey(struct TKeyEvent const &)
+	?SendKey@TApaTask@@QAEXHH@Z @ 77 NONAME ; public: void __thiscall TApaTask::SendKey(int,int)
+	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 78 NONAME ; public: int __thiscall TApaTask::SendMessage(class TUid,class TDesC8 const &)
+	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 79 NONAME ; public: void __thiscall TApaTask::SendSystemEvent(enum TApaSystemEvent)
+	?SendToBackground@TApaTask@@QAEXXZ @ 80 NONAME ; public: void __thiscall TApaTask::SendToBackground(void)
+	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 81 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppUid(class TUid)
+	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 82 NONAME ; public: void __thiscall CApaWindowGroupName::SetBusy(int)
+	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 83 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
+	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 84 NONAME ; public: void __thiscall CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
+	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 85 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameIsAFile(int)
+	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 86 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
+	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 87 NONAME ; public: void __thiscall CApaDoor::SetFormatToGlassL(void)
+	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 88 NONAME ; public: void __thiscall CApaDoor::SetFormatToIconL(void)
+	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 89 NONAME ; public: void __thiscall CApaDoor::SetFormatToTemporaryIconL(int)
+	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 90 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToShutdownEvent(int)
+	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 91 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
+	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 92 NONAME ; public: void __thiscall CApaWindowGroupName::SetSystem(int)
+	?SetWgId@TApaTask@@QAEXH@Z @ 93 NONAME ; public: void __thiscall TApaTask::SetWgId(int)
+	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 94 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
+	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 95 NONAME ; public: int __thiscall CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &)const 
+	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 96 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 97 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &)
+	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 98 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreL(void)
+	?StretchDrawL@CApaAppInfoFileReader@@SAXPAVCFbsBitmap@@0VTSize@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaAppInfoFileReader::StretchDrawL(class CFbsBitmap *,class CFbsBitmap *,class TSize)
+	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 100 NONAME ; public: int __thiscall TApaTask::SwitchCreateFile(class TDesC16 const &)
+	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 101 NONAME ; public: int __thiscall TApaTask::SwitchOpenFile(class TDesC16 const &)
+	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 102 NONAME ; public: class TThreadId  __thiscall TApaTask::ThreadId(void)const 
+	?UpdateCounter@CApaAppList@@QBEHXZ @ 103 NONAME ABSENT ; public: int __thiscall CApaAppList::UpdateCounter(void)const 
+	?UpdateL@CApaAppList@@QAEXXZ @ 104 NONAME ABSENT ; public: void __thiscall CApaAppList::UpdateL(void)
+	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 105 NONAME ; public: class TVersion  __thiscall RApaLsSession::Version(void)const 
+	?WgId@TApaTask@@QBEHXZ @ 106 NONAME ; public: int __thiscall TApaTask::WgId(void)const 
+	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 107 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::WindowGroupName(void)const 
+	??1CApaSystemControlList@@UAE@XZ @ 108 NONAME ; public: virtual __thiscall CApaSystemControlList::~CApaSystemControlList(void)
+	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 109 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::Caption(void)const 
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 110 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(int)const 
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 111 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(class TUid)const 
+	?Count@CApaSystemControlList@@QBEHXZ @ 112 NONAME ; public: int __thiscall CApaSystemControlList::Count(void)const 
+	?CreateL@CApaSystemControl@@QAEXXZ @ 113 NONAME ; public: void __thiscall CApaSystemControl::CreateL(void)
+	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 114 NONAME ; public: class TBuf<256>  __thiscall CApaSystemControl::FileName(void)const 
+	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 115 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaSystemControl::Icon(void)const 
+	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 116 NONAME ; public: int __thiscall CApaSystemControlList::Index(class TUid)const 
+	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@AAVCApaAppFinder@@ABVTDesC16@@@Z @ 117 NONAME ABSENT ; public: static class CApaSystemControlList * __cdecl CApaSystemControlList::NewL(class RFs &,class CApaAppFinder &,class TDesC16 const &)
+	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 118 NONAME ; public: class TUid  __thiscall CApaSystemControl::Type(void)const 
+	?UpdateL@CApaSystemControlList@@QAEXXZ @ 119 NONAME ; public: void __thiscall CApaSystemControlList::UpdateL(void)
+	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 120 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
+	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 121 NONAME ; public: int __thiscall RApaLsSession::AppForDataType(class TDataType const &,class TUid &)const 
+	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 122 NONAME ; public: int __thiscall RApaLsSession::AppForDocument(class TDesC16 const &,class TUid &,class TDataType &)const 
+	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 123 NONAME ; public: int __thiscall RApaLsSession::CreateDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 124 NONAME ABSENT ; long CApaAppData::DataType(class TDataType const &) const
+	?DataTypesSupportedL@CApaAppInfoFileReader@@QBEXAAV?$CArrayFix@VTDataTypeWithPriority@@@@@Z @ 125 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::DataTypesSupportedL(class CArrayFix<class TDataTypeWithPriority> &)const 
+	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 126 NONAME ; public: int __thiscall RApaLsSession::GetAcceptedConfidence(int &)const 
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 127 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,int,class CApaMaskedBitmap &)const 
+	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 128 NONAME ; public: int __thiscall RApaLsSession::GetMaxDataBufSize(int &)const 
+	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; public: int __thiscall RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &)const 
+	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 130 NONAME ; public: int __thiscall RApaLsSession::IsProgram(class TDesC16 const &,int &)const 
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 131 NONAME ABSENT ; public: class TUid  __thiscall CApaAppList::PreferredDataHandlerL(class TDataType const &)const 
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 132 NONAME ; public: int __thiscall RApaLsSession::RecognizeData(class TDesC16 const &,class TDesC8 const &,class TDataRecognitionResult &)const 
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 133 NONAME ; public: int __thiscall RApaLsSession::RecognizeSpecificData(class TDesC16 const &,class TDesC8 const &,class TDataType const &,int &)const 
+	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 134 NONAME ; public: int __thiscall RApaLsSession::SetAcceptedConfidence(int)
+	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 135 NONAME ; public: int __thiscall RApaLsSession::SetMaxDataBufSize(int)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 136 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 137 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TDataType const &,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 138 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 139 NONAME ABSENT ; public: void __thiscall CApaAppList::StartIdleUpdateL(void)
+	??1CApaAppListNotifier@@UAE@XZ @ 140 NONAME ; public: virtual __thiscall CApaAppListNotifier::~CApaAppListNotifier(void)
+	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 141 NONAME ; public: static class CApaAppListNotifier * __cdecl CApaAppListNotifier::NewL(class MApaAppListServObserver *,enum CActive::TPriority)
+	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ABSENT ; public: void __thiscall CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 143 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,class TSize,class CApaMaskedBitmap &)const 
+	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 144 NONAME ; public: int __thiscall RApaLsSession::GetAppIconSizes(class TUid,class CArrayFixFlat<class TSize> &)const 
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 145 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(class TSize)const 
+	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 146 NONAME ABSENT ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppData::IconSizesL(void)const 
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 147 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(int)const 
+	?Hidden@CApaWindowGroupName@@QBEHXZ @ 148 NONAME ; int CApaWindowGroupName::Hidden(void) const
+	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 149 NONAME ; public: void __thiscall CApaWindowGroupName::SetHidden(int)
+	?AddViewCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@VTUid@@@Z @ 150 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewCaptionL(enum TLanguage,class TDesC16 const &,class TUid)
+	?AddViewIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@VTUid@@@Z @ 151 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewIconL(class CApaMaskedBitmap &,class TUid)
+	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 152 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid)
+	?CaptionL@CApaAIFViewData@@QBE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 153 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAIFViewData::CaptionL(enum TLanguage)const 
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 154 NONAME ; public: int __thiscall RApaLsSession::GetAppViewIcon(class TUid,class TUid,class TSize const &,class CApaMaskedBitmap &)const 
+	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 155 NONAME ; public: int __thiscall RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &,class TUid)const 
+	?GetViewsL@CApaAppInfoFileReader@@QBEXAAV?$CArrayPtr@VCApaAIFViewData@@@@@Z @ 156 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetViewsL(class CArrayPtr<class CApaAIFViewData> &)const 
+	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 157 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppViewData::Icon(class TSize const &)const 
+	?IconByIndexL@CApaAIFViewData@@QBEPAVCApaMaskedBitmap@@H@Z @ 158 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAIFViewData::IconByIndexL(int)const 
+	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 159 NONAME ABSENT ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppViewData::IconSizesL(void)const 
+	?NumberOfIcons@CApaAIFViewData@@QBEHXZ @ 160 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::NumberOfIcons(void)const 
+	?StoreViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 161 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreViewL(class TUid)
+	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 162 NONAME ABSENT ; public: class TUid  __thiscall CApaAppViewData::Uid(void)const 
+	?ViewUid@CApaAIFViewData@@QBE?AVTUid@@XZ @ 163 NONAME ABSENT ; public: class TUid  __thiscall CApaAIFViewData::ViewUid(void)const 
+	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 164 NONAME ABSENT ; public: class CArrayPtrFlat<class CApaAppViewData> * __thiscall CApaAppData::Views(void)const 
+	?AddOwnedFileL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 165 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddOwnedFileL(class TDesC16 const &)
+	?GetOwnedFilesL@CApaAppInfoFileReader@@QBEXAAVCDesC16Array@@@Z @ 166 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetOwnedFilesL(class CDesC16Array &)const 
+	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 167 NONAME ABSENT ; public: class CDesC16Array * __thiscall CApaAppData::OwnedFiles(void)const 
+	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 168 NONAME ; public: int __thiscall RApaLsSession::GetAppOwnedFiles(class CDesC16Array &,class TUid)const 
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 169 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &,class TThreadId &)
+	?GetAifFileName@AppInfoFileUtils@@SAXABVRFs@@AAVTDes16@@@Z @ 170 NONAME ABSENT ; public: static void __cdecl AppInfoFileUtils::GetAifFileName(class RFs const &,class TDes16 &)
+	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@H@Z @ 171 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid,int)
+	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 172 NONAME ABSENT ; public: int __thiscall CApaAppData::CanUseScreenMode(int)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 173 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(int)const 
+	?GetAllApps@RApaLsSession@@QBEHH@Z @ 174 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(int)const 
+	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 175 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(int)const 
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 176 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &,int)const 
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 177 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *,int)const 
+	?ScreenMode@CApaAIFViewData@@QBEHXZ @ 178 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::ScreenMode(void)const 
+	?ScreenMode@CApaAppViewData@@QBEHXZ @ 179 NONAME ABSENT ; public: int __thiscall CApaAppViewData::ScreenMode(void)const 
+	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 180 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::ShortCaption(void)const 
+	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 181 NONAME ABSENT ; public: int __thiscall CApaAppList::IsIdleUpdateComplete(void)const 
+	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 182 NONAME ; public: int __thiscall CApaWindowGroupName::IsAppReady(void)const 
+	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 183 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppReady(int)
+	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 184 NONAME ABSENT ; public: void __thiscall CApaAppList::InitListL(class MApaAppListObserver *)
+	?NumberOfBitmaps@CApaAppInfoFileReader@@QBEHXZ @ 185 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileReader::NumberOfBitmaps(void)const 
+	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 186 NONAME ABSENT ; public: int __thiscall CApaAppList::IsFirstScanComplete(void)const 
+	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 187 NONAME ; public: void __thiscall CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
+	?GetAppInfo_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@VTUid@@@Z @ 188 NONAME ABSENT ; int RApaLsSession::GetAppInfo_7_0(class TApaAppInfo_7_0 &, class TUid) const
+	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@@Z @ 189 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &) const
+	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@H@Z @ 190 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &, int) const
+	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 191 NONAME ABSENT ; void CApaAppData::GetIconInfo(int &, int &) const
+	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 192 NONAME ; public: int __thiscall RApaLsSession::NumberOfOwnDefinedIcons(class TUid,int &)const 
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 193 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &)const 
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 194 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &,int)const 
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@PAVCApaAppRegFinder@@H@Z @ 195 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppFinder *, class CApaAppRegFinder *, int)	
+	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 196 NONAME ABSENT ; unsigned int CApaAppData::DefaultScreenNumber(void) const
+	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 197 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
+	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 198 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 199 NONAME ABSENT ; int CApaAppData::RegistrationFileUsed(void) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 200 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
+	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 201 NONAME ABSENT ; class TPtrC16 CApaAppData::IconFileName(void) const
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 202 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
+	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 203 NONAME ABSENT ; class TPtrC16 CApaAppViewData::IconFileName(void) const
+	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 204 NONAME ABSENT ; int CApaAppData::NonMbmIconFile(void) const
+	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 205 NONAME ABSENT ; int CApaAppViewData::NonMbmIconFile(void) const
+	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 206 NONAME ABSENT ; int StartupApaServer(class MApaAppStarter &)
+	?StartupApaServerProcess@@YAHXZ @ 207 NONAME ; int StartupApaServerProcess(void)
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 208 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@@Z @ 209 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid)
+	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@JVTUid@@AAH@Z @ 210 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, long, class TUid, int &)
+	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 211 NONAME ABSENT ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
+	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 212 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
+	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 213 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
+	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 214 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 215 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile const &, class TUid, class TUid &, class TDataType &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 216 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
+	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 217 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
+	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 218 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
+	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 219 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 220 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 221 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 222 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
+	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 223 NONAME ABSENT ; int CApaAppData::ImplementsService(class TUid) const
+	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 224 NONAME ABSENT ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 225 NONAME ABSENT ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
+	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 227 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
+	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
+	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
+	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 230 NONAME ABSENT ; class TUid TApaAppServiceInfo::Uid(void) const
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 231 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
+	?CreateMaskedBitmapByIndexLC@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 232 NONAME ABSENT ; class CApaMaskedBitmap * CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(int)
+	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 233 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
+	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 234 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
+	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 235 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
+	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 236 NONAME ABSENT ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
+	?RegisterJavaMIDletViaIterimFormat@RApaLsSession@@QAEHABVTDesC16@@AAVRFile@@@Z @ 237 NONAME ABSENT ; int RApaLsSession::RegisterJavaMIDletViaIterimFormat(class TDesC16 const &, class RFile &)
+	?DeregisterJavaMIDlet@RApaLsSession@@QAEHABVTDesC16@@@Z @ 238 NONAME ABSENT ; int RApaLsSession::DeregisterJavaMIDlet(class TDesC16 const &)
+	?AppForDocument@RApaLsSession@@QBEHABVRFile@@AAVTUid@@AAVTDataType@@@Z @ 239 NONAME ; int RApaLsSession::AppForDocument(class RFile const &, class TUid &, class TDataType &) const
+	?ClearFsSession@RApaLsSession@@SAXXZ @ 240 NONAME ; void RApaLsSession::ClearFsSession(void)
+	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 241 NONAME ; class RFs * RApaLsSession::FsSession(void)
+	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 242 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const	
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVRFile@@ABVTDataType@@AAH@Z @ 243 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile const &, class TDataType const &, int &) const
+	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 244 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 245 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 246 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
+	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 247 NONAME ; public: int __thiscall RApaLsSession::GetPreferredBufSize(int &)const 
+	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 248 NONAME ABSENT ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
+	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 249 NONAME ABSENT ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
+	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 250 NONAME ABSENT ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 251 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 252 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
+	?Close@RApaLsSession@@QAEXXZ @ 253 NONAME ; void RApaLsSession::Close(void)
+	??0MApaAppListServObserver@@IAE@XZ @ 254 NONAME ; MApaAppListServObserver::MApaAppListServObserver(void)
+	??0TApaPictureFactory@@IAE@XZ @ 255 NONAME ; TApaPictureFactory::TApaPictureFactory(void)
+	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 256 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
+	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 257 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
+	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 258 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
+	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 259 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
+	??0CDataRecognitionResultArray@@QAE@XZ @ 260 NONAME ; CDataRecognitionResultArray::CDataRecognitionResultArray(void)
+	??1CDataRecognitionResultArray@@UAE@XZ @ 261 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
+	?CancelRecognizeFiles@RApaLsSession@@QAEXXZ @ 262 NONAME ; void RApaLsSession::CancelRecognizeFiles(void)
+	?Count@CDataRecognitionResultArray@@QBEIXZ @ 263 NONAME ; unsigned int CDataRecognitionResultArray::Count(void) const
+	?GetDataRecognitionResultL@CDataRecognitionResultArray@@QBEXAAVTDataRecognitionResult@@I@Z @ 264 NONAME ; void CDataRecognitionResultArray::GetDataRecognitionResultL(class TDataRecognitionResult &, unsigned int) const
+	?GetFileNameL@CDataRecognitionResultArray@@QBEXAAV?$TBuf@$0BAA@@@I@Z @ 265 NONAME ; void CDataRecognitionResultArray::GetFileNameL(class TBuf<256> &, unsigned int) const
+	?Path@CDataRecognitionResultArray@@QBEABV?$TBuf@$0BAA@@@XZ @ 266 NONAME ; class TBuf<256> const & CDataRecognitionResultArray::Path(void) const
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@AAVCDataRecognitionResultArray@@@Z @ 267 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &) const
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@@Z @ 268 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &) const
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 269 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 270 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@1@Z @ 271 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid, class TUid)
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@VTUid@@@Z @ 272 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &, class TUid)
+	?GetAppByDataType@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 273 NONAME ; int RApaLsSession::GetAppByDataType(class TDataType const &, class TUid, class TUid &) const
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 274 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &, class TRequestStatus *)
+	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 275 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
+	?DeregisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@@Z @ 276 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationTypeL(class TUid)
+	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 277 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
+	?DeregisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@@Z @ 278 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationL(class TUid)
+	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 279 NONAME ABSENT ; class CApaAppData* CApaAppList::AppDataByFileName(class TDesC16 const &) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 280 NONAME ABSENT ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 281 NONAME ABSENT ; class TPtrC8 CApaAppData::OpaqueData(void) const
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 282 NONAME ABSENT ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?GetDefaultScreenNumber@RApaLsSession@@QBEHAAHVTUid@@@Z @ 283 NONAME ; int RApaLsSession::GetDefaultScreenNumber(int &, class TUid) const
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 284 NONAME ABSENT ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 285 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
+	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 286 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
+	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 287 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
+	?NewL@CApaLocalisableResourceFileWriter@@SAPAV1@ABVTDesC16@@0H0@Z @ 288 NONAME ; class CApaLocalisableResourceFileWriter * CApaLocalisableResourceFileWriter::NewL(class TDesC16 const &, class TDesC16 const &, int, class TDesC16 const &)
+	?NewL@CApaRegistrationResourceFileWriter@@SAPAV1@VTUid@@ABVTDesC16@@I@Z @ 289 NONAME ; class CApaRegistrationResourceFileWriter * CApaRegistrationResourceFileWriter::NewL(class TUid, class TDesC16 const &, unsigned int)
+	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 290 NONAME ABSENT ; class TUid CApaAppData::NonNativeApplicationType(void) const
+	?SetAppIsHiddenL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 291 NONAME ; void CApaRegistrationResourceFileWriter::SetAppIsHiddenL(int)
+	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 292 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
+	?SetEmbeddabilityL@CApaRegistrationResourceFileWriter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 293 NONAME ; void CApaRegistrationResourceFileWriter::SetEmbeddabilityL(enum TApaAppCapability::TEmbeddability)
+	?SetGroupNameL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 294 NONAME ; void CApaRegistrationResourceFileWriter::SetGroupNameL(class TDesC16 const &)
+	?SetLaunchInBackgroundL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 295 NONAME ; void CApaRegistrationResourceFileWriter::SetLaunchInBackgroundL(int)
+	?SetOpaqueDataL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC8@@@Z @ 296 NONAME ; void CApaRegistrationResourceFileWriter::SetOpaqueDataL(class TDesC8 const &)
+	?SetSupportsNewFileL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 297 NONAME ; void CApaRegistrationResourceFileWriter::SetSupportsNewFileL(int)
+	??1CApaLocalisableResourceFileWriter@@UAE@XZ @ 298 NONAME ; CApaLocalisableResourceFileWriter::~CApaLocalisableResourceFileWriter(void)
+	??1CApaRegistrationResourceFileWriter@@UAE@XZ @ 299 NONAME ; CApaRegistrationResourceFileWriter::~CApaRegistrationResourceFileWriter(void)
+	?AppScanInProgress@CApaAppList@@QBEHXZ @ 300 NONAME ABSENT ; int CApaAppList::AppScanInProgress(void) const
+	?CancelNotify@RApaLsSession@@QAEXXZ @ 301 NONAME ; void RApaLsSession::CancelNotify(void)
+	?SetNotify@RApaLsSession@@QAEXHAAVTRequestStatus@@@Z @ 302 NONAME ; void RApaLsSession::SetNotify(int, class TRequestStatus &)
+	?CancelNotifyOnDataMappingChange@RApaLsSession@@QAEXXZ @ 303 NONAME ; void RApaLsSession::CancelNotifyOnDataMappingChange(void)
+	?NotifyOnDataMappingChange@RApaLsSession@@QAEXAAVTRequestStatus@@@Z @ 304 NONAME ; void RApaLsSession::NotifyOnDataMappingChange(class TRequestStatus &)
+	?GetAppType@RApaLsSession@@QBEHAAVTUid@@V2@@Z @ 305 NONAME ; int RApaLsSession::GetAppType(class TUid &, class TUid) const
+	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 306 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
+	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 307 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
+	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 308 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
+	?SetUpdatedAppsList@CApaAppList@@QAEXPAVCUpdatedAppsList@@@Z @ 309 NONAME ABSENT ; void CApaAppList::SetUpdatedAppsList(class CUpdatedAppsList *)
+	?UpdatedAppsList@CApaAppList@@QAEPAVCUpdatedAppsList@@XZ @ 310 NONAME ABSENT ; class CUpdatedAppsList * CApaAppList::UpdatedAppsList(void)
+	??1CApaAppData@@UAE@XZ @ 311 NONAME ABSENT ; CApaAppData::~CApaAppData(void)
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 312 NONAME ABSENT ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?Self@CApaAppList@@SAPAV1@XZ @ 313 NONAME ABSENT ; class CApaAppList * CApaAppList::Self(void)
+	?ShareProtectedFileServer@CApaAppList@@QAEAAVRFs@@XZ @ 314 NONAME ABSENT ; class RFs & CApaAppList::ShareProtectedFileServer(void)
+	X @ 315 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 316 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 317 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 318 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 319 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
+	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 320 NONAME ABSENT ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 321 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 322 NONAME ABSENT ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
+	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 323 NONAME ABSENT ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 324 NONAME ABSENT ; void CApaAppList::ResetForcedRegistrations(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 325 NONAME ABSENT ; void CApaAppList::RestartScanL(void)
+	?StopScan@CApaAppList@@QAEXXZ @ 326 NONAME ABSENT ; void CApaAppList::StopScan(void)
+	?MinApplicationStackSize@@YAIXZ @ 327 NONAME ; unsigned int MinApplicationStackSize(void)
+	?KMinApplicationStackSize@@3HB @ 328 NONAME ; int const KMinApplicationStackSize
+	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 329 NONAME ABSENT ; int CApaAppList::IsLanguageChangePending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 330 NONAME ABSENT ; int CApaAppData::IsPending(void) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 331 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
+	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 332 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
+	X @ 333 NONAME ABSENT ;
+	X @ 334 NONAME ABSENT ;
+	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 335 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @336 NONAME;TInt RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
+	X @ 337 NONAME ABSENT ;
+	X @ 338 NONAME ABSENT ;	
+	X @ 339 NONAME ABSENT ;	
+	X @ 340 NONAME ABSENT ;	
+	X @ 341 NONAME ABSENT ;
+	X @ 342 NONAME ABSENT ;
+	X @ 343 NONAME ABSENT ;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/bwins/aplist_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,87 @@
+EXPORTS
+	??0TApaAppEntry@@QAE@XZ @ 1 NONAME ; TApaAppEntry::TApaAppEntry(void)
+	??1CApaAppData@@UAE@XZ @ 2 NONAME ; CApaAppData::~CApaAppData(void)
+	??1CApaAppList@@UAE@XZ @ 3 NONAME ; CApaAppList::~CApaAppList(void)
+	??1CAppSidChecker@@UAE@XZ @ 4 NONAME ; CAppSidChecker::~CAppSidChecker(void)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 5 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 6 NONAME ; class CApaAppData * CApaAppList::AppDataByFileName(class TDesC16 const &) const
+	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 7 NONAME ; class CApaAppData * CApaAppList::AppDataByUid(class TUid) const
+	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 8 NONAME ; class TApaAppEntry CApaAppData::AppEntry(void) const
+	?AppScanInProgress@CApaAppList@@QBEHXZ @ 9 NONAME ; int CApaAppList::AppScanInProgress(void) const
+	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 10 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
+	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 11 NONAME ; int CApaAppData::CanUseScreenMode(int)
+	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 12 NONAME ; void CApaAppData::Capability(class TDes8 &) const
+	?Count@CApaAppList@@QBEHXZ @ 13 NONAME ; int CApaAppList::Count(void) const
+	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 14 NONAME ; long CApaAppData::DataType(class TDataType const &) const
+	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 15 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
+	?DriveList@CApaAppRegFinder@@QBE?AV?$TArray@$$CBVTDriveUnitInfo@@@@XZ @ 16 NONAME ; class TArray<class TDriveUnitInfo const > CApaAppRegFinder::DriveList(void) const
+	?FindAllAppsL@CApaAppRegFinder@@QAEXW4TScanScope@1@@Z @ 17 NONAME ; void CApaAppRegFinder::FindAllAppsL(enum CApaAppRegFinder::TScanScope)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 18 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 19 NONAME ; class CApaAppData * CApaAppList::FirstApp(int) const
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 20 NONAME ; class CApaAppData * CApaAppList::FirstApp(void) const
+	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 21 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 22 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(int) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 23 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(class TSize) const
+	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 24 NONAME ; class CApaMaskedBitmap * CApaAppViewData::Icon(class TSize const &) const
+	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 25 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
+	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 26 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
+	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 27 NONAME ; class CArrayFixFlat<class TSize> * CApaAppData::IconSizesL(void) const
+	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 28 NONAME ; class CArrayFixFlat<class TSize> * CApaAppViewData::IconSizesL(void) const
+	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 29 NONAME ; int CApaAppData::ImplementsService(class TUid) const
+	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 30 NONAME ; void CApaAppList::InitListL(class MApaAppListObserver *)
+	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 31 NONAME ; int CApaAppList::IsFirstScanComplete(void) const
+	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 32 NONAME ; int CApaAppList::IsIdleUpdateComplete(void) const
+	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 33 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 34 NONAME ; int CApaAppData::IsPending(void) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 35 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 36 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@HH@Z @ 37 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, int, int)
+	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
+	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 39 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 40 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *) const
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 41 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *, int) const
+	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABVCDesC16Array@@@Z @ 42 NONAME ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class CDesC16Array const &)
+	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 43 NONAME ; int CApaAppData::NonMbmIconFile(void) const
+	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 44 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
+	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 45 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
+	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 46 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
+	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 47 NONAME ; class CDesC16Array * CApaAppData::OwnedFiles(void) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 48 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 49 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
+	?PurgeL@CApaAppList@@QAEXXZ @ 50 NONAME ; void CApaAppList::PurgeL(void)
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 51 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 52 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 53 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 54 NONAME ; void CApaAppList::RestartScanL(void)
+	?ScreenMode@CApaAppViewData@@QBEHXZ @ 55 NONAME ; int CApaAppViewData::ScreenMode(void) const
+	?Self@CApaAppList@@SAPAV1@XZ @ 56 NONAME ; class CApaAppList * CApaAppList::Self(void)
+	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 57 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 58 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 59 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
+	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 60 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
+	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 61 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
+	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 62 NONAME ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
+	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 63 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
+	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 64 NONAME ; void CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
+	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 65 NONAME ; void CApaAppList::StartIdleUpdateL(void)
+	?StopScan@CApaAppList@@QAEXH@Z @ 66 NONAME ; void CApaAppList::StopScan(int)
+	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 67 NONAME ; class TUid CApaAppViewData::Uid(void) const
+	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 68 NONAME ; class CArrayPtrFlat<class CApaAppViewData> * CApaAppData::Views(void) const
+	?reserved1@CAppSidChecker@@EAEXXZ @ 69 NONAME ; void CAppSidChecker::reserved1(void)
+	?reserved2@CAppSidChecker@@EAEXXZ @ 70 NONAME ; void CAppSidChecker::reserved2(void)
+	?reserved3@CAppSidChecker@@EAEXXZ @ 71 NONAME ; void CAppSidChecker::reserved3(void)
+	?AddCustomAppInfoInListL@CApaAppList@@QAEXVTUid@@W4TLanguage@@ABVTDesC16@@@Z @ 72 NONAME ; void CApaAppList::AddCustomAppInfoInListL(class TUid, enum TLanguage, class TDesC16 const &)
+	?UpdateAppListByShortCaptionL@CApaAppList@@QAEXXZ @ 73 NONAME ; void CApaAppList::UpdateAppListByShortCaptionL(void)
+	?SetCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 74 NONAME ; void CApaAppData::SetCaptionL(class TDesC16 const &)
+	?UpdateAppListByIconCaptionOverridesL@CApaAppList@@QAEXXZ @ 75 NONAME ; void CApaAppList::UpdateAppListByIconCaptionOverridesL(void)
+	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 76 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 77 NONAME ; int CApaAppList::AppListUpdatePending(void)
+	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 78 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+	X @ 79 NONAME ABSENT ;
+	X @ 80 NONAME ABSENT ;
+	X @ 81 NONAME ABSENT ;
+	X @ 82 NONAME ABSENT ;
+	X @ 83 NONAME ABSENT ;
+	X @ 84 NONAME ABSENT ;
+	X @ 85 NONAME ABSENT ;
+	X @ 86 NONAME ABSENT ;			
--- a/appfw/apparchitecture/bwins/aplistu.def	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/bwins/aplistu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -3,7 +3,7 @@
 	??1CApaAppData@@UAE@XZ @ 2 NONAME ; CApaAppData::~CApaAppData(void)
 	??1CApaAppList@@UAE@XZ @ 3 NONAME ; CApaAppList::~CApaAppList(void)
 	??1CAppSidChecker@@UAE@XZ @ 4 NONAME ; CAppSidChecker::~CAppSidChecker(void)
-	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 5 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 5 NONAME ABSENT; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
 	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 6 NONAME ; class CApaAppData * CApaAppList::AppDataByFileName(class TDesC16 const &) const
 	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 7 NONAME ; class CApaAppData * CApaAppList::AppDataByUid(class TUid) const
 	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 8 NONAME ; class TApaAppEntry CApaAppData::AppEntry(void) const
@@ -14,9 +14,9 @@
 	?Count@CApaAppList@@QBEHXZ @ 13 NONAME ; int CApaAppList::Count(void) const
 	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 14 NONAME ; long CApaAppData::DataType(class TDataType const &) const
 	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 15 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
-	?DriveList@CApaAppRegFinder@@QBE?AV?$TArray@$$CBVTDriveUnitInfo@@@@XZ @ 16 NONAME ; class TArray<class TDriveUnitInfo const > CApaAppRegFinder::DriveList(void) const
-	?FindAllAppsL@CApaAppRegFinder@@QAEXW4TScanScope@1@@Z @ 17 NONAME ; void CApaAppRegFinder::FindAllAppsL(enum CApaAppRegFinder::TScanScope)
-	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 18 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?DriveList@CApaAppRegFinder@@QBE?AV?$TArray@$$CBVTDriveUnitInfo@@@@XZ @ 16 NONAME ABSENT ; class TArray<class TDriveUnitInfo const > CApaAppRegFinder::DriveList(void) const
+	?FindAllAppsL@CApaAppRegFinder@@QAEXW4TScanScope@1@@Z @ 17 NONAME ABSENT ; void CApaAppRegFinder::FindAllAppsL(enum CApaAppRegFinder::TScanScope)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 18 NONAME ABSENT ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
 	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 19 NONAME ; class CApaAppData * CApaAppList::FirstApp(int) const
 	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 20 NONAME ; class CApaAppData * CApaAppList::FirstApp(void) const
 	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 21 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
@@ -32,15 +32,15 @@
 	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 31 NONAME ; int CApaAppList::IsFirstScanComplete(void) const
 	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 32 NONAME ; int CApaAppList::IsIdleUpdateComplete(void) const
 	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 33 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
-	?IsPending@CApaAppData@@QBEHXZ @ 34 NONAME ; int CApaAppData::IsPending(void) const
-	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 35 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
-	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 36 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?IsPending@CApaAppData@@QBEHXZ @ 34 NONAME ABSENT ; int CApaAppData::IsPending(void) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 35 NONAME ABSENT ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 36 NONAME ABSENT ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
 	?NewL@CApaAppList@@SAPAV1@AAVRFs@@HH@Z @ 37 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, int, int)
-	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
-	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 39 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
+	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
+	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 39 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
 	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 40 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *) const
 	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 41 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *, int) const
-	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABVCDesC16Array@@@Z @ 42 NONAME ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class CDesC16Array const &)
+	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABVCDesC16Array@@@Z @ 42 NONAME ABSENT ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class CDesC16Array const &)
 	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 43 NONAME ; int CApaAppData::NonMbmIconFile(void) const
 	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 44 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
 	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 45 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
@@ -48,11 +48,11 @@
 	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 47 NONAME ; class CDesC16Array * CApaAppData::OwnedFiles(void) const
 	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 48 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &) const
 	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 49 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
-	?PurgeL@CApaAppList@@QAEXXZ @ 50 NONAME ; void CApaAppList::PurgeL(void)
-	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 51 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
-	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 52 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
-	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 53 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
-	?RestartScanL@CApaAppList@@QAEXXZ @ 54 NONAME ; void CApaAppList::RestartScanL(void)
+	?PurgeL@CApaAppList@@QAEXXZ @ 50 NONAME ABSENT ; void CApaAppList::PurgeL(void)
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 51 NONAME ABSENT ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 52 NONAME ABSENT ; int CApaAppData::RegistrationFileUsed(void) const
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 53 NONAME ABSENT; void CApaAppList::ResetForcedRegistrations(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 54 NONAME ABSENT ; void CApaAppList::RestartScanL(void)
 	?ScreenMode@CApaAppViewData@@QBEHXZ @ 55 NONAME ; int CApaAppViewData::ScreenMode(void) const
 	?Self@CApaAppList@@SAPAV1@XZ @ 56 NONAME ; class CApaAppList * CApaAppList::Self(void)
 	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 57 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
@@ -64,7 +64,7 @@
 	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 63 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
 	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 64 NONAME ; void CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
 	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 65 NONAME ; void CApaAppList::StartIdleUpdateL(void)
-	?StopScan@CApaAppList@@QAEXH@Z @ 66 NONAME ; void CApaAppList::StopScan(int)
+	?StopScan@CApaAppList@@QAEXH@Z @ 66 NONAME ABSENT ; void CApaAppList::StopScan(int)
 	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 67 NONAME ; class TUid CApaAppViewData::Uid(void) const
 	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 68 NONAME ; class CArrayPtrFlat<class CApaAppViewData> * CApaAppData::Views(void) const
 	?reserved1@CAppSidChecker@@EAEXXZ @ 69 NONAME ; void CAppSidChecker::reserved1(void)
@@ -75,6 +75,13 @@
 	?SetCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 74 NONAME ; void CApaAppData::SetCaptionL(class TDesC16 const &)
 	?UpdateAppListByIconCaptionOverridesL@CApaAppList@@QAEXXZ @ 75 NONAME ; void CApaAppList::UpdateAppListByIconCaptionOverridesL(void)
 	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 76 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
-	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 77 NONAME ; int CApaAppList::AppListUpdatePending(void)
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 77 NONAME ABSENT ; int CApaAppList::AppListUpdatePending(void)
 	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 78 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@VTUid@@@Z @ 79 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class TUid)
+	?NewL@CApaAppData@@SAPAV1@ABVCApplicationRegistrationData@Usif@@AAVRFs@@ABVRSoftwareComponentRegistry@3@@Z @ 80 NONAME ; class CApaAppData * CApaAppData::NewL(class Usif::CApplicationRegistrationData const &, class RFs &, class Usif::RSoftwareComponentRegistry const &)
+	?UpdateApplistL@CApaAppList@@QAEXPAVMApaAppListObserver@@PAV?$RArray@VTApaAppUpdateInfo@@@@VTUid@@@Z @ 81 NONAME ; void CApaAppList::UpdateApplistL(class MApaAppListObserver *, class RArray<class TApaAppUpdateInfo> *, class TUid)
+	?InitializeApplistL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 82 NONAME ; void CApaAppList::InitializeApplistL(class MApaAppListObserver *)
+	?UpdateApplistByForceRegAppsL@CApaAppList@@QAEXAAV?$RPointerArray@VCApplicationRegistrationData@Usif@@@@@Z @ 83 NONAME ; void CApaAppList::UpdateApplistByForceRegAppsL(class RPointerArray<class Usif::CApplicationRegistrationData> &)
+	?UpdatedAppsInfo@CApaAppList@@QAEPAV?$CArrayFixFlat@VTApaAppUpdateInfo@@@@XZ @ 84 NONAME ; class CArrayFixFlat<class TApaAppUpdateInfo> * CApaAppList::UpdatedAppsInfo(void)
+	?IsLangChangePending@CApaAppData@@QAEHXZ @ 85 NONAME ; int CApaAppData::IsLangChangePending(void)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/bwins/apserv_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,27 @@
+EXPORTS
+	??1CApaAppArcServer@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CApaAppArcServer::~CApaAppArcServer(void)
+	?NewL@CApaAppArcServer@@SAPAV1@PAVCApaAppList@@PAVCApaFileRecognizer@@@Z @ 2 NONAME ABSENT ; public: static class CApaAppArcServer * __cdecl CApaAppArcServer::NewL(class CApaAppList *,class CApaFileRecognizer *)
+	??1CApaFsMonitor@@UAE@XZ @ 3 NONAME ; public: virtual __thiscall CApaFsMonitor::~CApaFsMonitor(void)
+	?NameApaServServerThread@@YA?AVTPtrC16@@XZ @ 4 NONAME ; class TPtrC16  __cdecl NameApaServServerThread(void)
+	?NameApaServStartSemaphore@@YA?AVTPtrC16@@XZ @ 5 NONAME ; class TPtrC16  __cdecl NameApaServStartSemaphore(void)
+	?NewL@CApaAppArcServer@@SAPAV1@XZ @ 6  NONAME ; class CApaAppArcServer * CApaAppArcServer::NewL(void)
+	?NewL@CApaFsMonitor@@SAPAV1@AAVRFs@@ABVTDesC16@@VTCallBack@@@Z @ 7 NONAME ; public: static class CApaFsMonitor * __cdecl CApaFsMonitor::NewL(class RFs &,class TDesC16 const &,class TCallBack)
+	?NotifyType@CApaFsMonitor@@QBE?AW4TNotifyType@@XZ @ 8 NONAME ; public: enum TNotifyType  __thiscall CApaFsMonitor::NotifyType(void)const 
+	?SetBlocked@CApaFsMonitor@@QAEXH@Z @ 9 NONAME ; public: void __thiscall CApaFsMonitor::SetBlocked(int)
+	?Start@CApaFsMonitor@@QAEXW4TNotifyType@@@Z @ 10 NONAME ; public: void __thiscall CApaFsMonitor::Start(enum TNotifyType)
+	?Self@CApaAppArcServer@@SAPAV1@XZ @ 11 NONAME ; class CApaAppArcServer * CApaAppArcServer::Self(void)
+	?AddLocationL@CApaFsMonitor@@QAEXABVTDesC16@@@Z @ 12 NONAME ; void CApaFsMonitor::AddLocationL(class TDesC16 const &)
+	?Cancel@CApaFsMonitor@@QAEXXZ @ 13 NONAME ; void CApaFsMonitor::Cancel(void)
+	?ApaServThreadStart@@YAHPAX@Z @ 14 NONAME ; int ApaServThreadStart(void *)
+	??1CUpdatedAppsList@@UAE@XZ @ 15 NONAME ABSENT ; CUpdatedAppsList::~CUpdatedAppsList(void)
+	?CloseAndDeletePermanentStore@CUpdatedAppsList@@QAEXXZ @ 16 NONAME ABSENT ; void CUpdatedAppsList::CloseAndDeletePermanentStore(void)
+	?IsInList@CUpdatedAppsList@@QBEHABVTDesC16@@@Z @ 17 NONAME ABSENT ; int CUpdatedAppsList::IsInList(class TDesC16 const &) const
+	?RescanCallBack@CApaAppArcServer@@QAE?AVTCallBack@@XZ @ 18 NONAME ; class TCallBack CApaAppArcServer::RescanCallBack(void)
+	?KApaLoadDataRecognizersOnDemand@@3HB @ 19 NONAME DATA 4 ; int const KApaLoadDataRecognizersOnDemand
+	?KApaUnloadRecognizersTimeout@@3HB @ 20 NONAME DATA 4 ; int const KApaUnloadRecognizersTimeout
+	?HandleInstallationEndEventL@CApaAppArcServer@@QAEXXZ @ 21 NONAME ; void CApaAppArcServer::HandleEndUninstallEventL(void)
+	?HandleInstallationStartEvent@CApaAppArcServer@@QAEXXZ @ 22 NONAME ; void CApaAppArcServer::HandleStartUninstallEvent(void)
+	?KApaDrivesToMonitor@@3HB @ 23 NONAME ; int const KApaDrivesToMonitor
+	?KApaLoadMbmIconsOnDemand@@3HB @ 24 NONAME ; int const KApaLoadMbmIconsOnDemand
+
+
--- a/appfw/apparchitecture/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/bwins/ticonforleaks_leagacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,351 @@
+EXPORTS
+	??0CDataRecognitionResultArray@@QAE@XZ @ 1 NONAME ; CDataRecognitionResultArray::CDataRecognitionResultArray(void)
+	??0MApaAppListServObserver@@IAE@XZ @ 2 NONAME ; MApaAppListServObserver::MApaAppListServObserver(void)
+	??0RApaLsSession@@QAE@XZ @ 3 NONAME ; RApaLsSession::RApaLsSession(void)
+	??0TApaPictureFactory@@IAE@XZ @ 4 NONAME ; TApaPictureFactory::TApaPictureFactory(void)
+	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 5 NONAME ; TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
+	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 6 NONAME ; TApaTask::TApaTask(class RWsSession &)
+	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 7 NONAME ; TApaTaskList::TApaTaskList(class RWsSession &)
+	??1CApaAppData@@UAE@XZ @ 8 NONAME ; CApaAppData::~CApaAppData(void)
+	??1CApaAppInfoFileWriter@@UAE@XZ @ 9 NONAME ABSENT ; CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
+	??1CApaAppList@@UAE@XZ @ 10 NONAME ; CApaAppList::~CApaAppList(void)
+	??1CApaAppListNotifier@@UAE@XZ @ 11 NONAME ; CApaAppListNotifier::~CApaAppListNotifier(void)
+	??1CApaDoor@@UAE@XZ @ 12 NONAME ; CApaDoor::~CApaDoor(void)
+	??1CApaLocalisableResourceFileWriter@@UAE@XZ @ 13 NONAME ; CApaLocalisableResourceFileWriter::~CApaLocalisableResourceFileWriter(void)
+	??1CApaMaskedBitmap@@UAE@XZ @ 14 NONAME ; CApaMaskedBitmap::~CApaMaskedBitmap(void)
+	??1CApaRegistrationResourceFileWriter@@UAE@XZ @ 15 NONAME ; CApaRegistrationResourceFileWriter::~CApaRegistrationResourceFileWriter(void)
+	??1CApaSystemControlList@@UAE@XZ @ 16 NONAME ; CApaSystemControlList::~CApaSystemControlList(void)
+	??1CApaWindowGroupName@@UAE@XZ @ 17 NONAME ; CApaWindowGroupName::~CApaWindowGroupName(void)
+	??1CDataRecognitionResultArray@@UAE@XZ @ 18 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
+	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 19 NONAME ABSENT ; void CApaAppInfoFileWriter::AddCaptionL(enum TLanguage, class TDesC16 const &)
+	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 20 NONAME ABSENT ; void CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
+	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 21 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
+	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 22 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 23 NONAME ABSENT ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 24 NONAME ABSENT ; void CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
+	?AppCount@RApaLsSession@@QBEHAAH@Z @ 25 NONAME ; int RApaLsSession::AppCount(int &) const
+	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 26 NONAME ; class CApaAppData * CApaAppList::AppDataByFileName(class TDesC16 const &) const
+	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 27 NONAME ; class CApaAppData * CApaAppList::AppDataByUid(class TUid) const
+	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 28 NONAME ; class TApaAppEntry CApaAppData::AppEntry(void) const
+	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 29 NONAME ; int RApaLsSession::AppForDataType(class TDataType const &, class TUid &) const
+	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 30 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
+	?AppForDocument@RApaLsSession@@QBEHABVRFile@@AAVTUid@@AAVTDataType@@@Z @ 31 NONAME ; int RApaLsSession::AppForDocument(class RFile const &, class TUid &, class TDataType &) const
+	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 32 NONAME ; int RApaLsSession::AppForDocument(class TDesC16 const &, class TUid &, class TDataType &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 33 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile const &, class TUid, class TUid &, class TDataType &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 34 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
+	?AppScanInProgress@CApaAppList@@QBEHXZ @ 35 NONAME ; int CApaAppList::AppScanInProgress(void) const
+	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 36 NONAME ; class TUid CApaWindowGroupName::AppUid(void) const
+	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 37 NONAME ; class TUid CApaDoor::AppUidL(void) const
+	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 38 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
+	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 39 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
+	?BringToForeground@TApaTask@@QAEXXZ @ 40 NONAME ; void TApaTask::BringToForeground(void)
+	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 41 NONAME ; int CApaAppData::CanUseScreenMode(int)
+	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 42 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
+	?CancelNotify@RApaLsSession@@QAEXXZ @ 43 NONAME ; void RApaLsSession::CancelNotify(void)
+	?CancelNotifyOnDataMappingChange@RApaLsSession@@QAEXXZ @ 44 NONAME ; void RApaLsSession::CancelNotifyOnDataMappingChange(void)
+	?CancelRecognizeFiles@RApaLsSession@@QAEXXZ @ 45 NONAME ; void RApaLsSession::CancelRecognizeFiles(void)
+	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 46 NONAME ; void CApaAppData::Capability(class TDes8 &) const
+	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 47 NONAME ; class TPtrC16 CApaSystemControl::Caption(void) const
+	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 48 NONAME ; class TPtrC16 CApaWindowGroupName::Caption(void) const
+	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 49 NONAME ABSENT ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
+	?ClearFsSession@RApaLsSession@@SAXXZ @ 50 NONAME ; void RApaLsSession::ClearFsSession(void)
+	?Close@RApaLsSession@@QAEXXZ @ 51 NONAME ; void RApaLsSession::Close(void)
+	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 52 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
+	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 53 NONAME ABSENT ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
+	?Connect@RApaLsSession@@QAEHXZ @ 54 NONAME ; int RApaLsSession::Connect(void)
+	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 55 NONAME ; void CApaWindowGroupName::ConstructFromWgIdL(int)
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 56 NONAME ; class CApaSystemControl * CApaSystemControlList::Control(int) const
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 57 NONAME ; class CApaSystemControl * CApaSystemControlList::Control(class TUid) const
+	?Count@CApaAppList@@QBEHXZ @ 58 NONAME ; int CApaAppList::Count(void) const
+	?Count@CApaSystemControlList@@QBEHXZ @ 59 NONAME ; int CApaSystemControlList::Count(void) const
+	?Count@CDataRecognitionResultArray@@QBEIXZ @ 60 NONAME ; unsigned int CDataRecognitionResultArray::Count(void) const
+	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 61 NONAME ; int RApaLsSession::CreateDocument(class TDesC16 const &, class TUid, class TThreadId &, enum RApaLsSession::TLaunchType)
+	?CreateL@CApaSystemControl@@QAEXXZ @ 62 NONAME ; void CApaSystemControl::CreateL(void)
+	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 63 NONAME ; int TApaTaskList::CycleTasks(class TUid, enum TApaTaskList::TCycleDirection)
+	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 64 NONAME ; long CApaAppData::DataType(class TDataType const &) const
+	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 65 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
+	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 66 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 67 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@VTUid@@@Z @ 68 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &, class TUid)
+	?DeregisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@@Z @ 69 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationL(class TUid)
+	?DeregisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@@Z @ 70 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationTypeL(class TUid)
+	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 71 NONAME ; class TPtrC16 CApaWindowGroupName::DocName(void) const
+	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 72 NONAME ; int CApaWindowGroupName::DocNameIsAFile(void) const
+	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 73 NONAME ; class CApaDocument * CApaDoor::DocumentL(int)
+	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 74 NONAME ; int RApaLsSession::EmbeddableAppCount(int &) const
+	?EndTask@TApaTask@@QAEXXZ @ 75 NONAME ; void TApaTask::EndTask(void)
+	?Exists@TApaTask@@QBEHXZ @ 76 NONAME ; int TApaTask::Exists(void) const
+	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 77 NONAME ; void CApaMaskedBitmap::ExternalizeL(class RWriteStream &) const
+	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 78 NONAME ; class TBuf<256> CApaSystemControl::FileName(void) const
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 79 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 80 NONAME ; class TApaTask TApaTaskList::FindApp(class TDesC16 const &)
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 81 NONAME ; class TApaTask TApaTaskList::FindApp(class TUid)
+	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 82 NONAME ; void CApaWindowGroupName::FindByAppUid(class TUid, class RWsSession &, int &)
+	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 83 NONAME ; void CApaWindowGroupName::FindByCaption(class TDesC16 const &, class RWsSession &, int &)
+	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 84 NONAME ; void CApaWindowGroupName::FindByDocName(class TDesC16 const &, class RWsSession &, int &)
+	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 85 NONAME ; class TApaTask TApaTaskList::FindByPos(int)
+	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 86 NONAME ; class TApaTask TApaTaskList::FindDoc(class TDesC16 const &)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 87 NONAME ; class CApaAppData * CApaAppList::FirstApp(int) const
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 88 NONAME ; class CApaAppData * CApaAppList::FirstApp(void) const
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 89 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
+	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 90 NONAME ; class RFs * RApaLsSession::FsSession(void)
+	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 91 NONAME ; int RApaLsSession::GetAcceptedConfidence(int &) const
+	?GetAllApps@RApaLsSession@@QBEHH@Z @ 92 NONAME ; int RApaLsSession::GetAllApps(int) const
+	?GetAllApps@RApaLsSession@@QBEHXZ @ 93 NONAME ; int RApaLsSession::GetAllApps(void) const
+	?GetAppByDataType@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 94 NONAME ; int RApaLsSession::GetAppByDataType(class TDataType const &, class TUid, class TUid &) const
+	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 95 NONAME ; int RApaLsSession::GetAppCapability(class TDes8 &, class TUid) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 96 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 97 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 98 NONAME ; int RApaLsSession::GetAppIcon(class TUid, int, class CApaMaskedBitmap &) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 99 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class TSize, class CApaMaskedBitmap &) const
+	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 100 NONAME ; int RApaLsSession::GetAppIconSizes(class TUid, class CArrayFixFlat<class TSize> &) const
+	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 101 NONAME ; int RApaLsSession::GetAppInfo(class TApaAppInfo &, class TUid) const
+	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 102 NONAME ; int RApaLsSession::GetAppOwnedFiles(class CDesC16Array &, class TUid) const
+	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 103 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
+	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 104 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
+	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 105 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
+	?GetAppType@RApaLsSession@@QBEHAAVTUid@@V2@@Z @ 106 NONAME ; int RApaLsSession::GetAppType(class TUid &, class TUid) const
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 107 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 108 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class TSize const &, class CApaMaskedBitmap &) const
+	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 109 NONAME ; int RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &, class TUid) const
+	?GetDataRecognitionResultL@CDataRecognitionResultArray@@QBEXAAVTDataRecognitionResult@@I@Z @ 110 NONAME ; void CDataRecognitionResultArray::GetDataRecognitionResultL(class TDataRecognitionResult &, unsigned int) const
+	?GetDefaultScreenNumber@RApaLsSession@@QBEHAAHVTUid@@@Z @ 111 NONAME ; int RApaLsSession::GetDefaultScreenNumber(int &, class TUid) const
+	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 112 NONAME ; int RApaLsSession::GetEmbeddableApps(int) const
+	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 113 NONAME ; int RApaLsSession::GetEmbeddableApps(void) const
+	?GetFileNameL@CDataRecognitionResultArray@@QBEXAAV?$TBuf@$0BAA@@@I@Z @ 114 NONAME ; void CDataRecognitionResultArray::GetFileNameL(class TBuf<256> &, unsigned int) const
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 115 NONAME ; int RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &) const
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 116 NONAME ; int RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &, int) const
+	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 117 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
+	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 118 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
+	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 119 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
+	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 120 NONAME ABSENT ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
+	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 121 NONAME ; int RApaLsSession::GetMaxDataBufSize(int &) const
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 122 NONAME ; int RApaLsSession::GetNextApp(class TApaAppInfo &) const
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 123 NONAME ; int RApaLsSession::GetNextApp(class TApaAppInfo &, int) const
+	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 124 NONAME ; int RApaLsSession::GetPreferredBufSize(int &) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 125 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 126 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 127 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 128 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
+	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; int RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &) const
+	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 130 NONAME ABSENT ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
+	?Hidden@CApaWindowGroupName@@QBEHXZ @ 131 NONAME ; int CApaWindowGroupName::Hidden(void) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 132 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(int) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 133 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(class TSize) const
+	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 134 NONAME ; class CApaMaskedBitmap * CApaAppViewData::Icon(class TSize const &) const
+	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 135 NONAME ; class CApaMaskedBitmap * CApaSystemControl::Icon(void) const
+	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 136 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
+	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 137 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
+	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 138 NONAME ; class CArrayFixFlat<class TSize> * CApaAppData::IconSizesL(void) const
+	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 139 NONAME ; class CArrayFixFlat<class TSize> * CApaAppViewData::IconSizesL(void) const
+	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 140 NONAME ; int CApaAppData::ImplementsService(class TUid) const
+	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 141 NONAME ; int CApaSystemControlList::Index(class TUid) const
+	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ; void CApaAppList::InitListL(class MApaAppListObserver *)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@1@Z @ 143 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid, class TUid)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@@Z @ 144 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid)
+	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@JVTUid@@AAH@Z @ 145 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, long, class TUid, int &)
+	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 146 NONAME ; void CApaMaskedBitmap::InternalizeL(class RReadStream &)
+	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 147 NONAME ; int CApaWindowGroupName::IsAppReady(void) const
+	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 148 NONAME ; int CApaWindowGroupName::IsBusy(void) const
+	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 149 NONAME ; int CApaAppList::IsFirstScanComplete(void) const
+	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 150 NONAME ; int CApaAppList::IsIdleUpdateComplete(void) const
+	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 151 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 152 NONAME ; int CApaAppData::IsPending(void) const
+	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 153 NONAME ; int RApaLsSession::IsProgram(class TDesC16 const &, int &) const
+	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 154 NONAME ; int CApaWindowGroupName::IsSystem(void) const
+	?KillTask@TApaTask@@QAEXXZ @ 155 NONAME ; void TApaTask::KillTask(void)
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 156 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 157 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
+	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 158 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
+	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 159 NONAME ; class CFbsBitmap * CApaMaskedBitmap::Mask(void) const
+	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 160 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
+	?MinApplicationStackSize@@YAIXZ @ 161 NONAME ; unsigned int MinApplicationStackSize(void)
+	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 162 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::New(class RWsSession const &, class HBufC16 *)
+	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 163 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 164 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 165 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
+	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 166 NONAME ; class CApaAppListNotifier * CApaAppListNotifier::NewL(class MApaAppListServObserver *, enum CActive::TPriority)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 167 NONAME ; class CApaDoor * CApaDoor::NewL(class RFs &, class CApaDocument &, class TSize const &)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 168 NONAME ; class CApaDoor * CApaDoor::NewL(class RFs &, class CStreamStore const &, class TStreamId, class CApaProcess &)
+	?NewL@CApaLocalisableResourceFileWriter@@SAPAV1@ABVTDesC16@@0H0@Z @ 169 NONAME ; class CApaLocalisableResourceFileWriter * CApaLocalisableResourceFileWriter::NewL(class TDesC16 const &, class TDesC16 const &, int, class TDesC16 const &)
+	?NewL@CApaMaskedBitmap@@SAPAV1@PBV1@@Z @ 170 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewL(class CApaMaskedBitmap const *)
+	?NewL@CApaRegistrationResourceFileWriter@@SAPAV1@VTUid@@ABVTDesC16@@I@Z @ 171 NONAME ; class CApaRegistrationResourceFileWriter * CApaRegistrationResourceFileWriter::NewL(class TUid, class TDesC16 const &, unsigned int)
+	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 172 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 173 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewL(class RWsSession const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 174 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewL(class RWsSession const &, class TDesC16 const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 175 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewL(class RWsSession const &, int)
+	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 176 NONAME ; class CApaDoor * CApaDoor::NewLC(class RFs &, class CApaDocument &, class TSize const &)
+	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 177 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewLC(void)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 178 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewLC(class RWsSession const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 179 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewLC(class RWsSession const &, class TDesC16 const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 180 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::NewLC(class RWsSession const &, int)
+	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 181 NONAME ; void TApaPictureFactory::NewPictureL(class TPictureHeader &, class CStreamStore const &) const
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 182 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *) const
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 183 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *, int) const
+	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 184 NONAME ; int CApaAppData::NonMbmIconFile(void) const
+	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 185 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
+	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 186 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
+	?NotifyOnDataMappingChange@RApaLsSession@@QAEXAAVTRequestStatus@@@Z @ 187 NONAME ; void RApaLsSession::NotifyOnDataMappingChange(class TRequestStatus &)
+	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 188 NONAME ; int RApaLsSession::NumberOfOwnDefinedIcons(class TUid, int &) const
+	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 189 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
+	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 190 NONAME ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
+	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 191 NONAME ; class CDesC16Array * CApaAppData::OwnedFiles(void) const
+	?Path@CDataRecognitionResultArray@@QBEABV?$TBuf@$0BAA@@@XZ @ 192 NONAME ; class TBuf<256> const & CDataRecognitionResultArray::Path(void) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 193 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 194 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
+	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 195 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
+	?PurgeL@CApaAppList@@QAEXXZ @ 196 NONAME ; void CApaAppList::PurgeL(void)
+	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 197 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
+	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 198 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
+	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 199 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 200 NONAME ; int RApaLsSession::RecognizeData(class TDesC16 const &, class TDesC8 const &, class TDataRecognitionResult &) const
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 201 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 202 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@AAVCDataRecognitionResultArray@@@Z @ 203 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &) const
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@@Z @ 204 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &) const
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVRFile@@ABVTDataType@@AAH@Z @ 205 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile const &, class TDataType const &, int &) const
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 206 NONAME ; int RApaLsSession::RecognizeSpecificData(class TDesC16 const &, class TDesC8 const &, class TDataType const &, int &) const
+	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 207 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
+	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 208 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
+	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 209 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 210 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 211 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 212 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
+	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 213 NONAME ; int CApaWindowGroupName::RespondsToShutdownEvent(void) const
+	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 214 NONAME ; int CApaWindowGroupName::RespondsToSwitchFilesEvent(void) const
+	?RestartScanL@CApaAppList@@QAEXXZ @ 215 NONAME ; void CApaAppList::RestartScanL(void)
+	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 216 NONAME ; void CApaDoor::RestoreL(class CStreamStore const &, class TStreamId)
+	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 217 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
+	?ScreenMode@CApaAppViewData@@QBEHXZ @ 218 NONAME ; int CApaAppViewData::ScreenMode(void) const
+	?Self@CApaAppList@@SAPAV1@XZ @ 219 NONAME ; class CApaAppList * CApaAppList::Self(void)
+	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 220 NONAME ; void TApaTask::SendKey(struct TKeyEvent const &)
+	?SendKey@TApaTask@@QAEXHH@Z @ 221 NONAME ; void TApaTask::SendKey(int, int)
+	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 222 NONAME ; int TApaTask::SendMessage(class TUid, class TDesC8 const &)
+	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 223 NONAME ; void TApaTask::SendSystemEvent(enum TApaSystemEvent)
+	?SendToBackground@TApaTask@@QAEXXZ @ 224 NONAME ; void TApaTask::SendToBackground(void)
+	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 225 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 227 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
+	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
+	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
+	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 230 NONAME ; int RApaLsSession::SetAcceptedConfidence(int)
+	?SetAppIsHiddenL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 231 NONAME ; void CApaRegistrationResourceFileWriter::SetAppIsHiddenL(int)
+	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 232 NONAME ; void CApaWindowGroupName::SetAppReady(int)
+	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 233 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
+	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 234 NONAME ; void CApaWindowGroupName::SetAppUid(class TUid)
+	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 235 NONAME ; void CApaWindowGroupName::SetBusy(int)
+	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 236 NONAME ABSENT ; int CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
+	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 237 NONAME ; void CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
+	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 238 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
+	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 239 NONAME ; void CApaWindowGroupName::SetDocNameIsAFile(int)
+	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 240 NONAME ; void CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
+	?SetEmbeddabilityL@CApaRegistrationResourceFileWriter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 241 NONAME ; void CApaRegistrationResourceFileWriter::SetEmbeddabilityL(enum TApaAppCapability::TEmbeddability)
+	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 242 NONAME ; void CApaDoor::SetFormatToGlassL(void)
+	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 243 NONAME ; void CApaDoor::SetFormatToIconL(void)
+	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 244 NONAME ; void CApaDoor::SetFormatToTemporaryIconL(int)
+	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 245 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
+	?SetGroupNameL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 246 NONAME ; void CApaRegistrationResourceFileWriter::SetGroupNameL(class TDesC16 const &)
+	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 247 NONAME ; void CApaWindowGroupName::SetHidden(int)
+	?SetLaunchInBackgroundL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 248 NONAME ; void CApaRegistrationResourceFileWriter::SetLaunchInBackgroundL(int)
+	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 249 NONAME ; void CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
+	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 250 NONAME ; int RApaLsSession::SetMaxDataBufSize(int)
+	?SetNotify@RApaLsSession@@QAEXHAAVTRequestStatus@@@Z @ 251 NONAME ; void RApaLsSession::SetNotify(int, class TRequestStatus &)
+	?SetOpaqueDataL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC8@@@Z @ 252 NONAME ; void CApaRegistrationResourceFileWriter::SetOpaqueDataL(class TDesC8 const &)
+	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 253 NONAME ; void CApaWindowGroupName::SetRespondsToShutdownEvent(int)
+	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 254 NONAME ; void CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
+	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 255 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
+	?SetSupportsNewFileL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 256 NONAME ; void CApaRegistrationResourceFileWriter::SetSupportsNewFileL(int)
+	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 257 NONAME ; void CApaWindowGroupName::SetSystem(int)
+	?SetUpdatedAppsList@CApaAppList@@QAEXPAVCUpdatedAppsList@@@Z @ 258 NONAME ABSENT ; void CApaAppList::SetUpdatedAppsList(class CUpdatedAppsList *)
+	?SetWgId@TApaTask@@QAEXH@Z @ 259 NONAME ; void TApaTask::SetWgId(int)
+	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 260 NONAME ; void CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
+	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 261 NONAME ; int CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &) const
+	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 262 NONAME ; void CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
+	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 263 NONAME ; class TPtrC16 CApaSystemControl::ShortCaption(void) const
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 264 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &)
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 265 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &)
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 266 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 267 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 268 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 269 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 270 NONAME ; int RApaLsSession::StartDocument(class TDesC16 const &, class TThreadId &, enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 271 NONAME ; int RApaLsSession::StartDocument(class TDesC16 const &, class TDataType const &, class TThreadId &, enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 272 NONAME ; int RApaLsSession::StartDocument(class TDesC16 const &, class TUid, class TThreadId &, enum RApaLsSession::TLaunchType)
+	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 273 NONAME ; void CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
+	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 274 NONAME ; void CApaAppList::StartIdleUpdateL(void)
+	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 275 NONAME ABSENT ; int StartupApaServer(class MApaAppStarter &)
+	?StartupApaServerProcess@@YAHXZ @ 276 NONAME ; int StartupApaServerProcess(void)
+	?StopScan@CApaAppList@@QAEXH@Z @ 277 NONAME ; void CApaAppList::StopScan(int)
+	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 278 NONAME ABSENT ; void CApaAppInfoFileWriter::StoreL(void)
+	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 279 NONAME ; int TApaTask::SwitchCreateFile(class TDesC16 const &)
+	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 280 NONAME ; int TApaTask::SwitchOpenFile(class TDesC16 const &)
+	?TestIconLoaderAndIconArrayL@TIconLoaderAndIconArrayForLeaks@@SAXXZ @ 281 NONAME ; void TIconLoaderAndIconArrayForLeaks::TestIconLoaderAndIconArrayL(void)
+	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 282 NONAME ; class TThreadId TApaTask::ThreadId(void) const
+	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 283 NONAME ; class TUid CApaSystemControl::Type(void) const
+	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 284 NONAME ; class TUid CApaAppViewData::Uid(void) const
+	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 285 NONAME ; class TUid TApaAppServiceInfo::Uid(void) const
+	?UpdateL@CApaSystemControlList@@QAEXXZ @ 286 NONAME ; void CApaSystemControlList::UpdateL(void)
+	?UpdatedAppsList@CApaAppList@@QAEPAVCUpdatedAppsList@@XZ @ 287 NONAME ABSENT ; class CUpdatedAppsList * CApaAppList::UpdatedAppsList(void)
+	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 288 NONAME ; class TVersion RApaLsSession::Version(void) const
+	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 289 NONAME ; class CArrayPtrFlat<class CApaAppViewData> * CApaAppData::Views(void) const
+	?WgId@TApaTask@@QBEHXZ @ 290 NONAME ; int TApaTask::WgId(void) const
+	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 291 NONAME ; class TPtrC16 CApaWindowGroupName::WindowGroupName(void) const
+	?KMinApplicationStackSize@@3HB @ 292 NONAME ; int const KMinApplicationStackSize
+	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 293 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
+	?SetCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 294 NONAME ; void CApaAppData::SetCaptionL(class TDesC16 const &)
+	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 295 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
+	?TestIconCaptionOverridesL@TIconLoaderAndIconArrayForLeaks@@SAXXZ @ 296 NONAME ; void TIconLoaderAndIconArrayForLeaks::TestIconCaptionOverridesL(void)
+	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 297 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
+	?DataTypes@TApaAppServiceInfo@@QAEAAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 298 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> & TApaAppServiceInfo::DataTypes(void)
+	??0TApaAppIdentifier@@QAE@XZ @ 299 NONAME ; TApaAppIdentifier::TApaAppIdentifier(void)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 300 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?ExternalizeL@TApaAppCapability@@QBEXAAVRWriteStream@@@Z @ 301 NONAME ; void TApaAppCapability::ExternalizeL(class RWriteStream &) const
+	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@11@Z @ 302 NONAME ; TApaAppInfo::TApaAppInfo(class TUid, class TBuf<256> const &, class TBuf<256> const &, class TBuf<256> const &)
+	?AddEmbeddability@TApaEmbeddabilityFilter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 303 NONAME ; void TApaEmbeddabilityFilter::AddEmbeddability(enum TApaAppCapability::TEmbeddability)
+	?InternalizeL@TApaAppServiceInfo@@QAEXAAVRReadStream@@@Z @ 304 NONAME ; void TApaAppServiceInfo::InternalizeL(class RReadStream &)
+	?InternalizeL@TApaAppViewInfo@@QAEXAAVRReadStream@@@Z @ 305 NONAME ; void TApaAppViewInfo::InternalizeL(class RReadStream &)
+	?MatchesEmbeddability@TApaEmbeddabilityFilter@@QBEHW4TEmbeddability@TApaAppCapability@@@Z @ 306 NONAME ; int TApaEmbeddabilityFilter::MatchesEmbeddability(enum TApaAppCapability::TEmbeddability) const
+	?ExternalizeL@TApaAppServiceInfo@@QBEXAAVRWriteStream@@@Z @ 307 NONAME ; void TApaAppServiceInfo::ExternalizeL(class RWriteStream &) const
+	??0CApaAppServiceInfoArray@@IAE@XZ @ 308 NONAME ; CApaAppServiceInfoArray::CApaAppServiceInfoArray(void)
+	??0TApaAppIdentifier@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@@Z @ 309 NONAME ; TApaAppIdentifier::TApaAppIdentifier(class TUid, class TBuf<256> const &)
+	?CopyCapability@TApaAppCapability@@SAXAAVTDes8@@ABVTDesC8@@@Z @ 310 NONAME ; void TApaAppCapability::CopyCapability(class TDes8 &, class TDesC8 const &)
+	??0TApaAppServiceInfo@@QAE@XZ @ 311 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(void)
+	?Release@TApaAppServiceInfo@@QAEXXZ @ 312 NONAME ; void TApaAppServiceInfo::Release(void)
+	?UpdateAppListByShortCaptionL@CApaAppList@@QAEXXZ @ 313 NONAME ; void CApaAppList::UpdateAppListByShortCaptionL(void)
+	?ExternalizeL@TApaAppIdentifier@@QBEXAAVRWriteStream@@@Z @ 314 NONAME ; void TApaAppIdentifier::ExternalizeL(class RWriteStream &) const
+	?ExternalizeL@TApaAppViewInfo@@QBEXAAVRWriteStream@@@Z @ 315 NONAME ; void TApaAppViewInfo::ExternalizeL(class RWriteStream &) const
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@HH@Z @ 316 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, int, int)
+	?CApaAppServiceInfoArray_Reserved1@CApaAppServiceInfoArray@@EAEXXZ @ 317 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved1(void)
+	?ExternalizeL@TApaAppInfo@@QBEXAAVRWriteStream@@@Z @ 318 NONAME ; void TApaAppInfo::ExternalizeL(class RWriteStream &) const
+	?InternalizeL@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 319 NONAME ; void TApaAppCapability::InternalizeL(class RReadStream &)
+	??0TApaAppEntry@@QAE@XZ @ 320 NONAME ; TApaAppEntry::TApaAppEntry(void)
+	?AddCustomAppInfoInListL@CApaAppList@@QAEXVTUid@@W4TLanguage@@ABVTDesC16@@@Z @ 321 NONAME ; void CApaAppList::AddCustomAppInfoInListL(class TUid, enum TLanguage, class TDesC16 const &)
+	?CApaAppServiceInfoArray_Reserved2@CApaAppServiceInfoArray@@EAEXXZ @ 322 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved2(void)
+	?UpdateAppListByIconCaptionOverridesL@CApaAppList@@QAEXXZ @ 323 NONAME ; void CApaAppList::UpdateAppListByIconCaptionOverridesL(void)
+	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 324 NONAME ; TApaAppInfo::TApaAppInfo(class TUid, class TBuf<256> const &, class TBuf<256> const &)
+	?InternalizeL@TApaAppInfo@@QAEXAAVRReadStream@@@Z @ 325 NONAME ; void TApaAppInfo::InternalizeL(class RReadStream &)
+	??0TApaEmbeddabilityFilter@@QAE@XZ @ 326 NONAME ; TApaEmbeddabilityFilter::TApaEmbeddabilityFilter(void)
+	?InternalizeL@TApaAppIdentifier@@QAEXAAVRReadStream@@@Z @ 327 NONAME ; void TApaAppIdentifier::InternalizeL(class RReadStream &)
+	??0TApaAppViewInfo@@QAE@XZ @ 328 NONAME ; TApaAppViewInfo::TApaAppViewInfo(void)
+	??0TApaAppInfo@@QAE@XZ @ 329 NONAME ; TApaAppInfo::TApaAppInfo(void)
+	??0TApaAppViewInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@H@Z @ 330 NONAME ; TApaAppViewInfo::TApaAppViewInfo(class TUid, class TBuf<256> const &, int)
+	??0TApaAppServiceInfo@@QAE@VTUid@@PAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@PAVHBufC8@@@Z @ 331 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(class TUid, class CArrayFixFlat<class TDataTypeWithPriority> *, class HBufC8 *)
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 332 NONAME ; int CApaAppList::AppListUpdatePending(void)
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @333 NONAME ; TInt RecognizeData(class TDesC8 const &, class TDataRecognitionResult & ) const
+	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 334 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+	X @ 335 NONAME ABSENT ;
+	X @ 336 NONAME ABSENT ;	
+	X @ 337 NONAME ABSENT ;	
+	X @ 338 NONAME ABSENT ;
+	X @ 339 NONAME ABSENT ;
+	X @ 340 NONAME ABSENT ;
+	X @ 341 NONAME ABSENT ;
+	X @ 342 NONAME ABSENT ;
+	X @ 343 NONAME ABSENT ;
+	X @ 344 NONAME ABSENT ;
+	X @ 345 NONAME ABSENT ;
+	X @ 346 NONAME ABSENT ;
+	X @ 347 NONAME ABSENT ;
+	X @ 348 NONAME ABSENT ;
+	X @ 349 NONAME ABSENT ;
+									
\ No newline at end of file
Binary file appfw/apparchitecture/conf/apparchitecture_closedcontentextinfo.confml has changed
Binary file appfw/apparchitecture/conf/apparchitecture_closedcontentextinfo_10003a3f.crml has changed
--- a/appfw/apparchitecture/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/eabi/APFILEU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/eabi/APFILEU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -92,11 +92,11 @@
 	_ZTV14CAppSidChecker @ 91 NONAME ABSENT ; #<VT>#
 	_ZNK16CApaAppRegFinder9DriveListEv @ 92 NONAME ABSENT
 	_ZN16CApaAppRegFinder26FindAllRemovableMediaAppsLEv @ 93 NONAME ABSENT
-	_ZN26CApaAppInstallationMonitor4NewLEP16CApaAppArcServer @ 94 NONAME
-	_ZN26CApaAppInstallationMonitor5StartEv @ 95 NONAME
-	_ZN26CApaAppInstallationMonitorD0Ev @ 96 NONAME
-	_ZN26CApaAppInstallationMonitorD1Ev @ 97 NONAME
-	_ZN26CApaAppInstallationMonitorD2Ev @ 98 NONAME
+	_ZN26CApaAppInstallationMonitor4NewLEP16CApaAppArcServer @ 94 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitor5StartEv @ 95 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitorD0Ev @ 96 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitorD1Ev @ 97 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitorD2Ev @ 98 NONAME ABSENT
 	_ZN21CApfMimeContentPolicy12IsClosedTypeERK7TDesC16 @ 99 NONAME
 	_ZN21CApfMimeContentPolicy13IsClosedFileLER5RFile @ 100 NONAME
 	_ZN21CApfMimeContentPolicy13IsClosedFileLERK7TDesC16 @ 101 NONAME
--- a/appfw/apparchitecture/eabi/APGRFXU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/eabi/APGRFXU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -433,3 +433,13 @@
 	X @ 432 NONAME ABSENT
 	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 433 NONAME
 	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 434 NONAME
+	_ZN13RApaLsSession14UpdateAppListLER6RArrayI17TApaAppUpdateInfoE @ 435 NONAME
+	_ZN17TApaAppUpdateInfo12InternalizeLER11RReadStream @ 436 NONAME
+	_ZN17TApaAppUpdateInfoC1Ev @ 437 NONAME
+	_ZN17TApaAppUpdateInfoC2Ev @ 438 NONAME
+	_ZNK17TApaAppUpdateInfo12ExternalizeLER12RWriteStream @ 439 NONAME
+	_ZN17TApaAppUpdateInfoC1E4TUidNS_13TApaAppActionE @ 440 NONAME
+	_ZN17TApaAppUpdateInfoC2E4TUidNS_13TApaAppActionE @ 441 NONAME
+	_ZN13RApaLsSession16UpdatedAppsInfoLER6RArrayI17TApaAppUpdateInfoE @ 442 NONAME
+	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayIN4Usif28CApplicationRegistrationDataEE @ 443 NONAME
+
--- a/appfw/apparchitecture/eabi/APSERVU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/eabi/APSERVU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -56,13 +56,13 @@
 	_ZNK16CUpdatedAppsList8IsInListERK7TDesC16 @ 55 NONAME ABSENT
 	_ZTIN16CUpdatedAppsList15CUpdatedAppInfoE @ 56 NONAME ABSENT ; #<TI>#
 	_ZTVN16CUpdatedAppsList15CUpdatedAppInfoE @ 57 NONAME ABSENT ; #<VT>#
-	_ZN16CApaAppArcServer14RescanCallBackEv @ 58 NONAME
+	_ZN16CApaAppArcServer14RescanCallBackEv @ 58 NONAME ABSENT
 	_ZTI18CCustomAppInfoData @ 59 NONAME ABSENT ; #<TI>#
 	_ZTV18CCustomAppInfoData @ 60 NONAME ABSENT ; #<VT>#
 	KApaLoadDataRecognizersOnDemand @ 61 NONAME DATA 4
 	KApaUnloadRecognizersTimeout @ 62 NONAME DATA 4
-	_ZN16CApaAppArcServer27HandleInstallationEndEventLEv @ 63 NONAME
-	_ZN16CApaAppArcServer28HandleInstallationStartEventEv @ 64 NONAME
+	_ZN16CApaAppArcServer27HandleInstallationEndEventLEv @ 63 NONAME ABSENT
+	_ZN16CApaAppArcServer28HandleInstallationStartEventEv @ 64 NONAME ABSENT
 	KApaDrivesToMonitor @ 65 NONAME DATA 4
 	KApaLoadMbmIconsOnDemand @ 66 NONAME DATA 4
 	_ZTI21CApaAppArcServSession @ 67 NONAME
--- a/appfw/apparchitecture/eabi/TICONFORLEAKSu.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/eabi/TICONFORLEAKSu.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -5,23 +5,23 @@
 	_Z23StartupApaServerProcessv @ 4 NONAME
 	_ZN11CApaAppData16CanUseScreenModeEi @ 5 NONAME
 	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 6 NONAME
-	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 7 NONAME
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 7 NONAME ABSENT
 	_ZN11CApaAppDataD0Ev @ 8 NONAME
 	_ZN11CApaAppDataD1Ev @ 9 NONAME
 	_ZN11CApaAppDataD2Ev @ 10 NONAME
-	_ZN11CApaAppList12RestartScanLEv @ 11 NONAME
+	_ZN11CApaAppList12RestartScanLEv @ 11 NONAME ABSENT
 	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 12 NONAME ABSENT
 	_ZN11CApaAppList15UpdatedAppsListEv @ 13 NONAME ABSENT
 	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 14 NONAME
 	_ZN11CApaAppList16StartIdleUpdateLEv @ 15 NONAME
 	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 16 NONAME ABSENT
 	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 17 NONAME ABSENT
-	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 18 NONAME
-	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 19 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 18 NONAME ABSENT
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 19 NONAME ABSENT
 	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 20 NONAME ABSENT
 	_ZN11CApaAppList4SelfEv @ 21 NONAME
-	_ZN11CApaAppList6PurgeLEv @ 22 NONAME
-	_ZN11CApaAppList8StopScanEi @ 23 NONAME
+	_ZN11CApaAppList6PurgeLEv @ 22 NONAME ABSENT
+	_ZN11CApaAppList8StopScanEi @ 23 NONAME ABSENT
 	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 24 NONAME
 	_ZN11CApaAppListD0Ev @ 25 NONAME
 	_ZN11CApaAppListD1Ev @ 26 NONAME
@@ -194,16 +194,16 @@
 	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 193 NONAME
 	_ZNK11CApaAppData19ApplicationLanguageEv @ 194 NONAME
 	_ZNK11CApaAppData19DefaultScreenNumberEv @ 195 NONAME
-	_ZNK11CApaAppData20RegistrationFileNameEv @ 196 NONAME
-	_ZNK11CApaAppData20RegistrationFileUsedEv @ 197 NONAME
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 196 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 197 NONAME ABSENT
 	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 198 NONAME
-	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 199 NONAME
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 199 NONAME ABSENT
 	_ZNK11CApaAppData4IconE5TSize @ 200 NONAME
 	_ZNK11CApaAppData4IconEi @ 201 NONAME
 	_ZNK11CApaAppData5ViewsEv @ 202 NONAME
 	_ZNK11CApaAppData8AppEntryEv @ 203 NONAME
 	_ZNK11CApaAppData8DataTypeERK9TDataType @ 204 NONAME
-	_ZNK11CApaAppData9IsPendingEv @ 205 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 205 NONAME ABSENT
 	_ZNK11CApaAppList12AppDataByUidE4TUid @ 206 NONAME
 	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 207 NONAME
 	_ZNK11CApaAppList17AppScanInProgressEv @ 208 NONAME
@@ -320,7 +320,7 @@
 	_ZNK8TApaTask6ExistsEv @ 319 NONAME
 	_ZNK8TApaTask8ThreadIdEv @ 320 NONAME
 	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 321 NONAME
-	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 322 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 322 NONAME ABSENT
 	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 323 NONAME
 	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 324 NONAME
 	_ZN11CApaAppList4NewLER3RFsii @ 325 NONAME
@@ -411,6 +411,23 @@
 	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 410 NONAME
 	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 411 NONAME
 	_ZN31TIconLoaderAndIconArrayForLeaks25TestIconCaptionOverridesLEv @ 412 NONAME
-	_ZN11CApaAppList20AppListUpdatePendingEv @ 413 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 413 NONAME ABSENT
 	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 414 NONAME
 	_ZN11CApaAppList19UninstalledAppArrayEv @ 415 NONAME
+	_ZN11CApaAppData4NewLERKN4Usif28CApplicationRegistrationDataER3RFsRKNS0_26RSoftwareComponentRegistryE @ 416 NONAME
+	_ZN11CApaAppList18InitializeApplistLEP19MApaAppListObserver @ 417 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLE4TUid @ 418 NONAME
+	_ZN13RApaLsSession14UpdateAppListLER6RArrayI17TApaAppUpdateInfoE @ 419 NONAME
+		_ZN17TApaAppUpdateInfo12InternalizeLER11RReadStream @ 420 NONAME
+	_ZN17TApaAppUpdateInfoC1Ev @ 421 NONAME
+	_ZN17TApaAppUpdateInfoC2Ev @ 422 NONAME
+	_ZNK17TApaAppUpdateInfo12ExternalizeLER12RWriteStream @ 423 NONAME
+	_ZN17TApaAppUpdateInfoC1E4TUidNS_13TApaAppActionE @ 424 NONAME
+	_ZN17TApaAppUpdateInfoC2E4TUidNS_13TApaAppActionE @ 425 NONAME
+	_ZN11CApaAppData19IsLangChangePendingEv @ 426 NONAME
+	_ZN11CApaAppList14UpdateApplistLEP19MApaAppListObserverP6RArrayI17TApaAppUpdateInfoE4TUid @ 427 NONAME
+	_ZN11CApaAppList15UpdatedAppsInfoEv @ 428 NONAME
+	_ZN11CApaAppList28UpdateApplistByForceRegAppsLER13RPointerArrayIN4Usif28CApplicationRegistrationDataEE @ 429 NONAME
+	_ZN13RApaLsSession16UpdatedAppsInfoLER6RArrayI17TApaAppUpdateInfoE @ 430 NONAME
+	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayIN4Usif28CApplicationRegistrationDataEE @ 431 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/eabi/apfile_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,115 @@
+EXPORTS
+	_ZN19CApaAppLocatorProxy16GetAppEntryByUidER12TApaAppEntry4TUid @ 1 NONAME ABSENT
+	_ZN19CApaAppLocatorProxy21GetAppCapabilityByUidER5TDes84TUid @ 2 NONAME ABSENT
+	_ZN19CApaAppLocatorProxy4NewLER3RFs @ 3 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD0Ev @ 4 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD1Ev @ 5 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD2Ev @ 6 NONAME ABSENT
+	_ZN21CApaScanningAppFinder12FindAllAppsLEv @ 7 NONAME ABSENT
+	_ZN21CApaScanningAppFinder4NewLERK3RFs @ 8 NONAME ABSENT
+	_ZN21CApaScanningAppFinder5NewLCERK3RFs @ 9 NONAME ABSENT
+	_ZN21CApaScanningAppFinder5NextLER12TApaAppEntry @ 10 NONAME ABSENT
+	_ZN21CApaScanningAppFinder8FindAppLERK7TDesC164TUid @ 11 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD0Ev @ 12 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD1Ev @ 13 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD2Ev @ 14 NONAME ABSENT
+	_ZN25CApaScanningControlFinder12FindAllAppsLEv @ 15 NONAME ABSENT
+	_ZN25CApaScanningControlFinder4NewLERK3RFs @ 16 NONAME ABSENT
+	_ZN25CApaScanningControlFinder5NewLCERK3RFs @ 17 NONAME ABSENT
+	_ZN25CApaScanningControlFinder5NextLER12TApaAppEntry @ 18 NONAME ABSENT
+	_ZN25CApaScanningControlFinder8FindAppLERK7TDesC164TUid @ 19 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD0Ev @ 20 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD1Ev @ 21 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD2Ev @ 22 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer10ConstructLEv @ 23 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer14SetRecognizerLERKNS_11TRecognizerE @ 24 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer15RecognizerCountEv @ 25 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer19ScanForRecognizersLEv @ 26 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer23SetRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 27 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer4NewLER3RFsP14MApaAppStarter @ 28 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerC1ER3RFsP14MApaAppStarter @ 29 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerC2ER3RFsP14MApaAppStarter @ 30 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD0Ev @ 31 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD1Ev @ 32 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD2Ev @ 33 NONAME ABSENT
+	_ZN6Apfile8TempPathEv @ 34 NONAME ABSENT
+	_ZNK21CApaScanningAppFinder22DefaultAppInfoFileNameEv @ 35 NONAME ABSENT
+	_ZNK21CApaScanningAppFinder8TempPathEv @ 36 NONAME ABSENT
+	_ZNK25CApaScanningControlFinder22DefaultAppInfoFileNameEv @ 37 NONAME ABSENT
+	_ZNK25CApaScanningControlFinder8TempPathEv @ 38 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizer13UpdateCounterEv @ 39 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizer16RecognizerListLCEv @ 40 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizerixEi @ 41 NONAME ABSENT
+	_ZTI26CApaScanningFileRecognizer @ 42 NONAME ABSENT ; #<TI>#
+	_ZTV26CApaScanningFileRecognizer @ 43 NONAME ABSENT ; #<VT>#
+	_ZN26CApaScanningFileRecognizer18SetEcomRecognizerLERKNS_11TRecognizerE @ 44 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer27SetEcomRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 45 NONAME ABSENT
+	_ZTI17CApaRecognizerDll @ 46 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppLocatorProxy @ 47 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaScanningAppFinder @ 48 NONAME ABSENT ; #<TI>#
+	_ZTI25CApaScanningControlFinder @ 49 NONAME ABSENT ; #<TI>#
+	_ZTIN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 50 NONAME ABSENT ; #<TI>#
+	_ZTV17CApaRecognizerDll @ 51 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppLocatorProxy @ 52 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaScanningAppFinder @ 53 NONAME ABSENT ; #<VT>#
+	_ZTV25CApaScanningControlFinder @ 54 NONAME ABSENT ; #<VT>#
+	_ZTVN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 55 NONAME ABSENT ; #<VT>#
+	_ZN16CApaAppRegFinder12FindAllAppsLEv @ 56 NONAME ABSENT
+	_ZN16CApaAppRegFinder4NewLERK3RFs @ 57 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 58 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntry @ 59 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK13RPointerArrayI7HBufC16E @ 60 NONAME ABSENT
+	_ZNK16CApaAppRegFinder8TempPathEv @ 61 NONAME ABSENT
+	_ZTI16CApaAppRegFinder @ 62 NONAME ABSENT ; #<TI>#
+	_ZTV16CApaAppRegFinder @ 63 NONAME ABSENT ; #<VT>#
+	_ZN17CAppLaunchChecker10Reserved_1Ev @ 64 NONAME
+	_ZN17CAppLaunchChecker10Reserved_2Ev @ 65 NONAME
+	_ZN17CAppLaunchChecker10Reserved_3Ev @ 66 NONAME
+	_ZN17CAppLaunchCheckerD0Ev @ 67 NONAME
+	_ZN17CAppLaunchCheckerD1Ev @ 68 NONAME
+	_ZN17CAppLaunchCheckerD2Ev @ 69 NONAME
+	_ZN28CApaScanningRuleBasedPlugIns4NewLEv @ 70 NONAME
+	_ZNK28CApaScanningRuleBasedPlugInsixEi @ 71 NONAME
+	_ZTI16CApaRuleBasedDll @ 72 NONAME ; #<TI>#
+	_ZTI17CAppLaunchChecker @ 73 NONAME ; #<TI>#
+	_ZTV16CApaRuleBasedDll @ 74 NONAME ; #<VT>#
+	_ZTV17CAppLaunchChecker @ 75 NONAME ; #<VT>#
+	_ZN28CApaScanningRuleBasedPlugInsD0Ev @ 76 NONAME
+	_ZN28CApaScanningRuleBasedPlugInsD1Ev @ 77 NONAME
+	_ZN28CApaScanningRuleBasedPlugInsD2Ev @ 78 NONAME
+	_ZTI28CApaScanningRuleBasedPlugIns @ 79 NONAME ; #<TI>#
+	_ZTV28CApaScanningRuleBasedPlugIns @ 80 NONAME ; #<VT>#
+	_ZN28CApaScanningRuleBasedPlugIns24ScanForRuleBasedPlugInsLEv @ 81 NONAME
+	_ZNK28CApaScanningRuleBasedPlugIns19ImplementationCountEv @ 82 NONAME
+	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 83 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved1Ev @ 84 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved2Ev @ 85 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved3Ev @ 86 NONAME ABSENT
+	_ZN14CAppSidCheckerD0Ev @ 87 NONAME ABSENT
+	_ZN14CAppSidCheckerD1Ev @ 88 NONAME ABSENT
+	_ZN14CAppSidCheckerD2Ev @ 89 NONAME ABSENT
+	_ZTI14CAppSidChecker @ 90 NONAME ABSENT ; #<TI>#
+	_ZTV14CAppSidChecker @ 91 NONAME ABSENT ; #<VT>#
+	_ZNK16CApaAppRegFinder9DriveListEv @ 92 NONAME ABSENT
+	_ZN16CApaAppRegFinder26FindAllRemovableMediaAppsLEv @ 93 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitor4NewLEP16CApaAppArcServer @ 94 NONAME
+	_ZN26CApaAppInstallationMonitor5StartEv @ 95 NONAME
+	_ZN26CApaAppInstallationMonitorD0Ev @ 96 NONAME
+	_ZN26CApaAppInstallationMonitorD1Ev @ 97 NONAME
+	_ZN26CApaAppInstallationMonitorD2Ev @ 98 NONAME
+	_ZN21CApfMimeContentPolicy12IsClosedTypeERK7TDesC16 @ 99 NONAME
+	_ZN21CApfMimeContentPolicy13IsClosedFileLER5RFile @ 100 NONAME
+	_ZN21CApfMimeContentPolicy13IsClosedFileLERK7TDesC16 @ 101 NONAME
+	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLER5RFile @ 102 NONAME
+	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLERK7TDesC16 @ 103 NONAME
+	_ZN21CApfMimeContentPolicy17IsClosedExtensionERK7TDesC16 @ 104 NONAME
+	_ZN21CApfMimeContentPolicy4NewLER3RFs @ 105 NONAME
+	_ZN21CApfMimeContentPolicy4NewLEv @ 106 NONAME
+	_ZN21CApfMimeContentPolicy5NewLCER3RFs @ 107 NONAME
+	_ZN21CApfMimeContentPolicy5NewLCEv @ 108 NONAME
+	_ZN21CApfMimeContentPolicyD0Ev @ 109 NONAME
+	_ZN21CApfMimeContentPolicyD1Ev @ 110 NONAME
+	_ZN21CApfMimeContentPolicyD2Ev @ 111 NONAME
+	_ZTI21CApfMimeContentPolicy @ 112 NONAME
+	_ZTV21CApfMimeContentPolicy @ 113 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/eabi/apgrfx_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,445 @@
+EXPORTS
+	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 1 NONAME ABSENT
+	_ZN11CApaAppData16CanUseScreenModeEi @ 2 NONAME ABSENT
+	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 3 NONAME ABSENT
+	_ZN11CApaAppList16StartIdleUpdateLEv @ 4 NONAME ABSENT
+	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 5 NONAME ABSENT
+	_ZN11CApaAppList6PurgeLEv @ 6 NONAME ABSENT
+	_ZN11CApaAppList7UpdateLEv @ 7 NONAME ABSENT
+	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 8 NONAME ABSENT
+	_ZN11CApaAppListD0Ev @ 9 NONAME ABSENT
+	_ZN11CApaAppListD1Ev @ 10 NONAME ABSENT
+	_ZN11CApaAppListD2Ev @ 11 NONAME ABSENT
+	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 12 NONAME
+	_ZN12TApaTaskList7FindAppE4TUid @ 13 NONAME
+	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 14 NONAME
+	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 15 NONAME
+	_ZN12TApaTaskList9FindByPosEi @ 16 NONAME
+	_ZN12TApaTaskListC1ER10RWsSession @ 17 NONAME
+	_ZN12TApaTaskListC2ER10RWsSession @ 18 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 19 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 20 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 21 NONAME
+	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 22 NONAME
+	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 23 NONAME
+	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 24 NONAME
+	_ZN13RApaLsSession7ConnectEv @ 25 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 26 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 27 NONAME
+	_ZN13RApaLsSessionC1Ev @ 28 NONAME
+	_ZN13RApaLsSessionC2Ev @ 29 NONAME
+	_ZN16AppInfoFileUtils14GetAifFileNameERK3RFsR6TDes16 @ 30 NONAME ABSENT
+	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 31 NONAME
+	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 32 NONAME
+	_ZN16CApaMaskedBitmap4NewLEPKS_ @ 33 NONAME
+	_ZN16CApaMaskedBitmap5NewLCEv @ 34 NONAME
+	_ZN16CApaMaskedBitmapD0Ev @ 35 NONAME
+	_ZN16CApaMaskedBitmapD1Ev @ 36 NONAME
+	_ZN16CApaMaskedBitmapD2Ev @ 37 NONAME
+	_ZN17CApaSystemControl7CreateLEv @ 38 NONAME
+	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 39 NONAME
+	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 40 NONAME
+	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 41 NONAME
+	_ZN19CApaAppListNotifierD0Ev @ 42 NONAME
+	_ZN19CApaAppListNotifierD1Ev @ 43 NONAME
+	_ZN19CApaAppListNotifierD2Ev @ 44 NONAME
+	_ZN19CApaWindowGroupName11SetAppReadyEi @ 45 NONAME
+	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 46 NONAME
+	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 47 NONAME
+	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 48 NONAME
+	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 49 NONAME
+	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 50 NONAME
+	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 51 NONAME
+	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 52 NONAME
+	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 53 NONAME
+	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 54 NONAME
+	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 55 NONAME
+	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 56 NONAME
+	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 57 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 58 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 59 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 60 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 61 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 62 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 63 NONAME
+	_ZNK19CApaWindowGroupName6HiddenEv @ 64 NONAME
+	_ZN19CApaWindowGroupName7SetBusyEi @ 65 NONAME
+	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 66 NONAME
+	_ZN19CApaWindowGroupName9SetHiddenEi @ 67 NONAME
+	_ZN19CApaWindowGroupName9SetSystemEi @ 68 NONAME
+	_ZN19CApaWindowGroupNameD0Ev @ 69 NONAME
+	_ZN19CApaWindowGroupNameD1Ev @ 70 NONAME
+	_ZN19CApaWindowGroupNameD2Ev @ 71 NONAME
+	_ZN21CApaAppInfoFileReader12StretchDrawLEP10CFbsBitmapS1_5TSize @ 72 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader19CreateMaskedBitmapLEi @ 73 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader4NewLER3RFsRK7TDesC164TUid @ 74 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader5NewLCER3RFsRK7TDesC164TUid @ 75 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader8CaptionLE9TLanguage @ 76 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD0Ev @ 77 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD1Ev @ 78 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD2Ev @ 79 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter10StoreViewLE4TUid @ 80 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 81 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 82 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddViewIconLER16CApaMaskedBitmap4TUid @ 83 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13AddOwnedFileLERK7TDesC16 @ 84 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 85 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter15AddViewCaptionLE9TLanguageRK7TDesC164TUid @ 86 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter5NewLCER3RFsRK7TDesC164TUid @ 87 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter6StoreLEv @ 88 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 89 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLERK7TDesC16 @ 90 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddViewLE4TUid @ 91 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddViewLE4TUidi @ 92 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD0Ev @ 93 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD1Ev @ 94 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD2Ev @ 95 NONAME ABSENT
+	_ZN21CApaSystemControlList4NewLER3RFsR13CApaAppFinderRK7TDesC16 @ 96 NONAME ABSENT
+	_ZN21CApaSystemControlList7UpdateLEv @ 97 NONAME
+	_ZN21CApaSystemControlListD0Ev @ 98 NONAME
+	_ZN21CApaSystemControlListD1Ev @ 99 NONAME
+	_ZN21CApaSystemControlListD2Ev @ 100 NONAME
+	_ZN8CApaDoor16SetFormatToIconLEv @ 101 NONAME
+	_ZN8CApaDoor17SetFormatToGlassLEv @ 102 NONAME
+	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 103 NONAME
+	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 104 NONAME
+	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 105 NONAME
+	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 106 NONAME
+	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 107 NONAME
+	_ZN8CApaDoor9DocumentLEi @ 108 NONAME
+	_ZN8CApaDoorD0Ev @ 109 NONAME
+	_ZN8CApaDoorD1Ev @ 110 NONAME
+	_ZN8CApaDoorD2Ev @ 111 NONAME
+	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 112 NONAME
+	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 113 NONAME
+	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 114 NONAME
+	_ZN8TApaTask16SendToBackgroundEv @ 115 NONAME
+	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 116 NONAME
+	_ZN8TApaTask17BringToForegroundEv @ 117 NONAME
+	_ZN8TApaTask7EndTaskEv @ 118 NONAME
+	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 119 NONAME
+	_ZN8TApaTask7SendKeyEii @ 120 NONAME
+	_ZN8TApaTask7SetWgIdEi @ 121 NONAME
+	_ZN8TApaTask8KillTaskEv @ 122 NONAME
+	_ZN8TApaTaskC1ER10RWsSession @ 123 NONAME
+	_ZN8TApaTaskC2ER10RWsSession @ 124 NONAME
+	_ZNK11CApaAppData10CapabilityER5TDes8 @ 125 NONAME ABSENT
+	_ZNK11CApaAppData10IconSizesLEv @ 126 NONAME ABSENT
+	_ZNK11CApaAppData10OwnedFilesEv @ 127 NONAME ABSENT
+	_ZNK11CApaAppData4IconE5TSize @ 128 NONAME ABSENT
+	_ZNK11CApaAppData4IconEi @ 129 NONAME ABSENT
+	_ZNK11CApaAppData5ViewsEv @ 130 NONAME ABSENT
+	_ZNK11CApaAppData8AppEntryEv @ 131 NONAME ABSENT
+	_ZNK11CApaAppData8DataTypeERK9TDataType @ 132 NONAME ABSENT
+	_ZNK11CApaAppList12AppDataByUidE4TUid @ 133 NONAME ABSENT
+	_ZNK11CApaAppList13UpdateCounterEv @ 134 NONAME ABSENT
+	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 135 NONAME ABSENT
+	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 136 NONAME ABSENT
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 137 NONAME ABSENT
+	_ZNK11CApaAppList5CountEv @ 138 NONAME ABSENT
+	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 139 NONAME ABSENT
+	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 140 NONAME ABSENT
+	_ZNK11CApaAppList8FirstAppEi @ 141 NONAME ABSENT
+	_ZNK11CApaAppList8FirstAppEv @ 142 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAllAppsEi @ 143 NONAME
+	_ZNK13RApaLsSession10GetAllAppsEv @ 144 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 145 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 146 NONAME
+	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 147 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 148 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 149 NONAME
+	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 150 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 151 NONAME
+	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 152 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 153 NONAME
+	_ZNK13RApaLsSession14GetAppInfo_7_0ER15TApaAppInfo_7_04TUid @ 154 NONAME ABSENT
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 155 NONAME
+	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0 @ 156 NONAME ABSENT
+	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0i @ 157 NONAME ABSENT
+	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 158 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 159 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 160 NONAME
+	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 161 NONAME
+	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 162 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 163 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 164 NONAME
+	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 165 NONAME
+	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 166 NONAME
+	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 167 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 168 NONAME
+	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 169 NONAME
+	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 170 NONAME
+	_ZNK13RApaLsSession7VersionEv @ 171 NONAME
+	_ZNK13RApaLsSession8AppCountERi @ 172 NONAME
+	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 173 NONAME
+	_ZNK15CApaAIFViewData10ScreenModeEv @ 174 NONAME ABSENT
+	_ZNK15CApaAIFViewData12IconByIndexLEi @ 175 NONAME ABSENT
+	_ZNK15CApaAIFViewData13NumberOfIconsEv @ 176 NONAME ABSENT
+	_ZNK15CApaAIFViewData7ViewUidEv @ 177 NONAME ABSENT
+	_ZNK15CApaAIFViewData8CaptionLE9TLanguage @ 178 NONAME ABSENT
+	_ZNK15CApaAppViewData10IconSizesLEv @ 179 NONAME ABSENT
+	_ZNK15CApaAppViewData10ScreenModeEv @ 180 NONAME ABSENT
+	_ZNK15CApaAppViewData3UidEv @ 181 NONAME ABSENT
+	_ZNK15CApaAppViewData4IconERK5TSize @ 182 NONAME ABSENT
+	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 183 NONAME
+	_ZNK16CApaMaskedBitmap4MaskEv @ 184 NONAME
+	_ZNK17CApaSystemControl12ShortCaptionEv @ 185 NONAME
+	_ZNK17CApaSystemControl4IconEv @ 186 NONAME
+	_ZNK17CApaSystemControl4TypeEv @ 187 NONAME
+	_ZNK17CApaSystemControl7CaptionEv @ 188 NONAME
+	_ZNK17CApaSystemControl8FileNameEv @ 189 NONAME
+	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 190 NONAME
+	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 191 NONAME
+	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 192 NONAME
+	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 193 NONAME
+	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 194 NONAME
+	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 195 NONAME
+	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 196 NONAME
+	_ZNK19CApaWindowGroupName6AppUidEv @ 197 NONAME
+	_ZNK19CApaWindowGroupName6IsBusyEv @ 198 NONAME
+	_ZNK19CApaWindowGroupName7CaptionEv @ 199 NONAME
+	_ZNK19CApaWindowGroupName7DocNameEv @ 200 NONAME
+	_ZNK19CApaWindowGroupName8IsSystemEv @ 201 NONAME
+	_ZNK21CApaAppInfoFileReader10CapabilityER5TDes8 @ 202 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader14GetOwnedFilesLER12CDesC16Array @ 203 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader15NumberOfBitmapsEv @ 204 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader19DataTypesSupportedLER9CArrayFixI21TDataTypeWithPriorityE @ 205 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader9GetViewsLER9CArrayPtrI15CApaAIFViewDataE @ 206 NONAME ABSENT
+	_ZNK21CApaSystemControlList5CountEv @ 207 NONAME
+	_ZNK21CApaSystemControlList5IndexE4TUid @ 208 NONAME
+	_ZNK21CApaSystemControlList7ControlE4TUid @ 209 NONAME
+	_ZNK21CApaSystemControlList7ControlEi @ 210 NONAME
+	_ZNK8CApaDoor7AppUidLEv @ 211 NONAME
+	_ZNK8TApaTask4WgIdEv @ 212 NONAME
+	_ZNK8TApaTask6ExistsEv @ 213 NONAME
+	_ZNK8TApaTask8ThreadIdEv @ 214 NONAME
+	_ZTI18TApaPictureFactory @ 215 NONAME ; #<TI>#
+	_ZTV18TApaPictureFactory @ 216 NONAME ; #<VT>#
+	_ZTI11CApaAppData @ 217 NONAME ABSENT ; #<TI>#
+	_ZTI11CApaAppList @ 218 NONAME ABSENT ; #<TI>#
+	_ZTI12CApaAppEntry @ 219 NONAME ABSENT ; #<TI>#
+	_ZTI14CApaAIFCaption @ 220 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAIFViewData @ 221 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAppInfoFile @ 222 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAppViewData @ 223 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaIconPicture @ 224 NONAME ; #<TI>#
+	_ZTI16CApaMaskedBitmap @ 225 NONAME ; #<TI>#
+	_ZTI16TDesCArrayFiller @ 226 NONAME ABSENT ; #<TI>#
+	_ZTI16TSizeArrayFiller @ 227 NONAME ABSENT ; #<TI>#
+	_ZTI17CApaSystemControl @ 228 NONAME ; #<TI>#
+	_ZTI19CApaAppListNotifier @ 229 NONAME ; #<TI>#
+	_ZTI19CApaWindowGroupName @ 230 NONAME ; #<TI>#
+	_ZTI20TViewDataArrayFiller @ 231 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaAppInfoFileReader @ 232 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaAppInfoFileWriter @ 233 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaSystemControlList @ 234 NONAME ; #<TI>#
+	_ZTI7HBufBuf @ 235 NONAME ; #<TI>#
+	_ZTI8CApaDoor @ 236 NONAME ; #<TI>#
+	_ZTV11CApaAppData @ 237 NONAME ABSENT ; #<VT>#
+	_ZTV11CApaAppList @ 238 NONAME ABSENT ; #<VT>#
+	_ZTV12CApaAppEntry @ 239 NONAME ABSENT ; #<VT>#
+	_ZTV14CApaAIFCaption @ 240 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAIFViewData @ 241 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAppInfoFile @ 242 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAppViewData @ 243 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaIconPicture @ 244 NONAME ; #<VT>#
+	_ZTV16CApaMaskedBitmap @ 245 NONAME ; #<VT>#
+	_ZTV16TDesCArrayFiller @ 246 NONAME ABSENT ; #<VT>#
+	_ZTV16TSizeArrayFiller @ 247 NONAME ABSENT ; #<VT>#
+	_ZTV17CApaSystemControl @ 248 NONAME ; #<VT>#
+	_ZTV19CApaAppListNotifier @ 249 NONAME ; #<VT>#
+	_ZTV19CApaWindowGroupName @ 250 NONAME ; #<VT>#
+	_ZTV20TViewDataArrayFiller @ 251 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaAppInfoFileReader @ 252 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaAppInfoFileWriter @ 253 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaSystemControlList @ 254 NONAME ; #<VT>#
+	_ZTV7HBufBuf @ 255 NONAME ; #<VT>#
+	_ZTV8CApaDoor @ 256 NONAME ; #<VT>#
+	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinderP16CApaAppRegFinderi @ 257 NONAME ABSENT
+	_ZNK11CApaAppData12IconFileNameEv @ 258 NONAME ABSENT
+	_ZNK11CApaAppData14NonMbmIconFileEv @ 259 NONAME ABSENT
+	_ZNK11CApaAppData19DefaultScreenNumberEv @ 260 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 261 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 262 NONAME
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 263 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 264 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 265 NONAME
+	_ZNK15CApaAppViewData12IconFileNameEv @ 266 NONAME ABSENT
+	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 267 NONAME ABSENT
+	_ZTI17CApaAppInfoReader @ 268 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppInfoReaderV1 @ 269 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppInfoReaderV2 @ 270 NONAME ABSENT ; #<TI>#
+	_ZTV17CApaAppInfoReader @ 271 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppInfoReaderV1 @ 272 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppInfoReaderV2 @ 273 NONAME ABSENT ; #<VT>#
+	_Z16StartupApaServerR14MApaAppStarter @ 274 NONAME ABSENT
+	_Z23StartupApaServerProcessv @ 275 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 276 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUid @ 277 NONAME
+	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypel4TUidRi @ 278 NONAME
+	_ZNK11CApaAppData19ApplicationLanguageEv @ 279 NONAME ABSENT
+	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 280 NONAME
+	_ZN21CApaSystemControlList4NewLER3RFs @ 281 NONAME
+	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 282 NONAME ABSENT
+	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 283 NONAME ABSENT
+	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 284 NONAME ABSENT
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 285 NONAME ABSENT
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 286 NONAME ABSENT
+	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 287 NONAME ABSENT
+	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 288 NONAME
+	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 289 NONAME
+	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 290 NONAME
+	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 291 NONAME
+	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 292 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK5RFile4TUidRS3_R9TDataType @ 293 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 294 NONAME
+	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 295 NONAME
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 296 NONAME
+	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 297 NONAME ABSENT
+	_ZNK18TApaAppServiceInfo3UidEv @ 298 NONAME ABSENT
+	_ZTI30CApaAppServiceInfoArrayWrapper @ 299 NONAME ABSENT ; #<TI>#
+	_ZTV30CApaAppServiceInfoArrayWrapper @ 300 NONAME ABSENT ; #<VT>#
+	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 301 NONAME
+	_ZN21CApaAppInfoFileReader27CreateMaskedBitmapByIndexLCEi @ 302 NONAME ABSENT
+	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 303 NONAME
+	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 304 NONAME
+	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 305 NONAME ABSENT
+	_ZN13RApaLsSession33RegisterJavaMIDletViaIterimFormatERK7TDesC16R5RFile @ 306 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 307 NONAME ABSENT
+	_ZN13RApaLsSession20DeregisterJavaMIDletERK7TDesC16 @ 308 NONAME ABSENT
+	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 309 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 310 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 311 NONAME
+	_ZN13RApaLsSession14ClearFsSessionEv @ 312 NONAME
+	_ZN13RApaLsSession9FsSessionEv @ 313 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK5RFileR22TDataRecognitionResult @ 314 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK5RFileR4TUidR9TDataType @ 315 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK5RFileRK9TDataTypeRi @ 316 NONAME
+	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 317 NONAME
+	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 318 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 319 NONAME ABSENT
+	_ZNK18TApaAppServiceInfo9DataTypesEv @ 320 NONAME ABSENT
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 321 NONAME ABSENT
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 322 NONAME
+	_ZN13RApaLsSession5CloseEv @ 323 NONAME
+	_ZTI22CApaLsSessionExtension @ 324 NONAME ABSENT ; #<TI>#
+	_ZTV22CApaLsSessionExtension @ 325 NONAME ABSENT ; #<VT>#
+	_ZN13RApaLsSession23RApaLsSession_Reserved1Ev @ 326 NONAME
+	_ZN13RApaLsSession23RApaLsSession_Reserved2Ev @ 327 NONAME
+	_ZN18TApaPictureFactoryC1Ev @ 328 NONAME
+	_ZN18TApaPictureFactoryC2Ev @ 329 NONAME
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 330 NONAME
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 331 NONAME
+	_ZN23MApaAppListServObserverC2Ev @ 332 NONAME
+	_ZTI13RApaLsSession @ 333 NONAME ; #<TI>#
+	_ZTI23MApaAppListServObserver @ 334 NONAME ; #<TI>#
+	_ZTV13RApaLsSession @ 335 NONAME ; #<VT>#
+	_ZTV23MApaAppListServObserver @ 336 NONAME ; #<VT>#
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArray @ 337 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArrayR14TRequestStatus @ 338 NONAME
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArray @ 339 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArrayR14TRequestStatus @ 340 NONAME
+	_ZN13RApaLsSession20CancelRecognizeFilesEv @ 341 NONAME
+	_ZN27CDataRecognitionResultArrayC1Ev @ 342 NONAME
+	_ZN27CDataRecognitionResultArrayC2Ev @ 343 NONAME
+	_ZN27CDataRecognitionResultArrayD0Ev @ 344 NONAME
+	_ZN27CDataRecognitionResultArrayD1Ev @ 345 NONAME
+	_ZN27CDataRecognitionResultArrayD2Ev @ 346 NONAME
+	_ZNK27CDataRecognitionResultArray12GetFileNameLER4TBufILi256EEj @ 347 NONAME
+	_ZNK27CDataRecognitionResultArray25GetDataRecognitionResultLER22TDataRecognitionResultj @ 348 NONAME
+	_ZNK27CDataRecognitionResultArray4PathEv @ 349 NONAME
+	_ZNK27CDataRecognitionResultArray5CountEv @ 350 NONAME
+	_ZTI21CAsyncFileRecognition @ 351 NONAME ABSENT ; #<TI>#
+	_ZTI27CDataRecognitionResultArray @ 352 NONAME ; #<TI>#
+	_ZTI32CDataRecognitionResultArrayEntry @ 353 NONAME ABSENT ; #<TI>#
+	_ZTV21CAsyncFileRecognition @ 354 NONAME ABSENT ; #<VT>#
+	_ZTV27CDataRecognitionResultArray @ 355 NONAME ; #<VT>#
+	_ZTV32CDataRecognitionResultArrayEntry @ 356 NONAME ABSENT ; #<VT>#
+	_ZNK13RApaLsSession16GetAppByDataTypeERK9TDataType4TUidRS3_ @ 357 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType4TUid @ 358 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUidS3_ @ 359 NONAME
+	_ZN13RApaLsSession29RegisterNonNativeApplicationLE4TUidRK10TDriveUnitR34CApaRegistrationResourceFileWriterP33CApaLocalisableResourceFileWriterPK5RFile @ 360 NONAME
+	_ZN13RApaLsSession31DeregisterNonNativeApplicationLE4TUid @ 361 NONAME
+	_ZN13RApaLsSession33RegisterNonNativeApplicationTypeLE4TUidRK7TDesC16 @ 362 NONAME
+	_ZN13RApaLsSession35DeregisterNonNativeApplicationTypeLE4TUid @ 363 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 364 NONAME
+	_ZNK11CApaAppData10OpaqueDataEv @ 365 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 366 NONAME ABSENT
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 367 NONAME ABSENT
+	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 368 NONAME ABSENT
+	_ZNK13RApaLsSession22GetDefaultScreenNumberERi4TUid @ 369 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 370 NONAME ABSENT
+	_ZNK13RApaLsSession21MatchesSecurityPolicyERi4TUidRK15TSecurityPolicy @ 371 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD1Ev @ 372 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD2Ev @ 373 NONAME
+	_ZN34CApaRegistrationResourceFileWriter12AddDataTypeLEiRK6TDesC8 @ 374 NONAME
+	_ZN34CApaRegistrationResourceFileWriter13SetGroupNameLERK7TDesC16 @ 375 NONAME
+	_ZN34CApaRegistrationResourceFileWriter14SetOpaqueDataLERK6TDesC8 @ 376 NONAME
+	_ZN34CApaRegistrationResourceFileWriter15SetAppIsHiddenLEi @ 377 NONAME
+	_ZN34CApaRegistrationResourceFileWriter17SetEmbeddabilityLEN17TApaAppCapability14TEmbeddabilityE @ 378 NONAME
+	_ZN34CApaRegistrationResourceFileWriter19SetSupportsNewFileLEi @ 379 NONAME
+	_ZN34CApaRegistrationResourceFileWriter21AddFileOwnershipInfoLERK7TDesC16 @ 380 NONAME
+	_ZN34CApaRegistrationResourceFileWriter22SetLaunchInBackgroundLEi @ 381 NONAME
+	_ZN34CApaRegistrationResourceFileWriter23SetDefaultScreenNumberLEi @ 382 NONAME
+	_ZN34CApaRegistrationResourceFileWriter4NewLE4TUidRK7TDesC16j @ 383 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 384 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 385 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 386 NONAME
+	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 387 NONAME ABSENT
+	_ZTI33CApaLocalisableResourceFileWriter @ 388 NONAME ; #<TI>#
+	_ZTI34CApaRegistrationResourceFileWriter @ 389 NONAME ; #<TI>#
+	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 390 NONAME ; #<TI>#
+	_ZTV33CApaLocalisableResourceFileWriter @ 391 NONAME ; #<VT>#
+	_ZTV34CApaRegistrationResourceFileWriter @ 392 NONAME ; #<VT>#
+	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 393 NONAME ; #<VT>#
+	_ZN33CApaLocalisableResourceFileWriter4NewLERK7TDesC16S2_iS2_ @ 394 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD0Ev @ 395 NONAME
+	_ZN13RApaLsSession12CancelNotifyEv @ 396 NONAME
+	_ZN13RApaLsSession9SetNotifyEiR14TRequestStatus @ 397 NONAME
+	_ZNK11CApaAppList17AppScanInProgressEv @ 398 NONAME ABSENT
+	_ZN13RApaLsSession25NotifyOnDataMappingChangeER14TRequestStatus @ 399 NONAME
+	_ZN13RApaLsSession31CancelNotifyOnDataMappingChangeEv @ 400 NONAME
+	_ZNK13RApaLsSession10GetAppTypeER4TUidS0_ @ 401 NONAME
+	_ZN13RApaLsSession35CommitNonNativeApplicationsUpdatesLEv @ 402 NONAME
+	_ZN13RApaLsSession36PrepareNonNativeApplicationsUpdatesLEv @ 403 NONAME
+	_ZN13RApaLsSession36RollbackNonNativeApplicationsUpdatesEv @ 404 NONAME
+	_ZN11CApaAppList15UpdatedAppsListEv @ 405 NONAME ABSENT
+	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 406 NONAME ABSENT
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 407 NONAME ABSENT
+	_ZN11CApaAppDataD0Ev @ 408 NONAME ABSENT
+	_ZN11CApaAppDataD1Ev @ 409 NONAME ABSENT
+	_ZN11CApaAppDataD2Ev @ 410 NONAME ABSENT
+	_ZN11CApaAppList24ShareProtectedFileServerEv @ 411 NONAME ABSENT
+	_ZN11CApaAppList4SelfEv @ 412 NONAME ABSENT
+	X @ 413 NONAME ABSENT
+	X @ 414 NONAME ABSENT
+	X @ 415 NONAME ABSENT
+	X @ 416 NONAME ABSENT
+	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 417 NONAME
+	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 418 NONAME ABSENT
+	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 419 NONAME ABSENT
+	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 420 NONAME ABSENT
+	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayI7TDesC16E @ 421 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 422 NONAME ABSENT
+	_ZN11CApaAppList12RestartScanLEv @ 423 NONAME ABSENT
+	_ZN11CApaAppList8StopScanEv @ 424 NONAME ABSENT
+	KMinApplicationStackSize @ 425 NONAME DATA 4
+	_Z23MinApplicationStackSizev @ 426 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 427 NONAME ABSENT
+	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 428 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAppIconE4TUidR5RFile @ 429 NONAME
+	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 430 NONAME
+	X @ 431 NONAME ABSENT
+	X @ 432 NONAME ABSENT
+	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 433 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 434 NONAME
+	X @ 435 NONAME ABSENT
+	X @ 436 NONAME ABSENT	
+	X @ 437 NONAME ABSENT	
+	X @ 438 NONAME ABSENT	
+	X @ 439 NONAME ABSENT	
+	X @ 440 NONAME ABSENT	
+	X @ 441 NONAME ABSENT
+	X @ 442 NONAME ABSENT
+	X @ 443 NONAME ABSENT	
+					
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/eabi/aplist_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,108 @@
+EXPORTS
+	_ZN11CApaAppData16CanUseScreenModeEi @ 1 NONAME
+	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 2 NONAME
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 3 NONAME
+	_ZN11CApaAppDataD0Ev @ 4 NONAME
+	_ZN11CApaAppDataD1Ev @ 5 NONAME
+	_ZN11CApaAppDataD2Ev @ 6 NONAME
+	_ZN11CApaAppList12RestartScanLEv @ 7 NONAME
+	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 8 NONAME
+	_ZN11CApaAppList16StartIdleUpdateLEv @ 9 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 10 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 11 NONAME
+	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 12 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 13 NONAME
+	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 14 NONAME
+	_ZN11CApaAppList4NewLER3RFsii @ 15 NONAME
+	_ZN11CApaAppList4SelfEv @ 16 NONAME
+	_ZN11CApaAppList6PurgeLEv @ 17 NONAME
+	_ZN11CApaAppList8StopScanEi @ 18 NONAME
+	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 19 NONAME
+	_ZN11CApaAppListD0Ev @ 20 NONAME
+	_ZN11CApaAppListD1Ev @ 21 NONAME
+	_ZN11CApaAppListD2Ev @ 22 NONAME
+	_ZN12TApaAppEntryC1Ev @ 23 NONAME
+	_ZN12TApaAppEntryC2Ev @ 24 NONAME
+	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 25 NONAME
+	_ZN14CAppSidChecker9reserved1Ev @ 26 NONAME
+	_ZN14CAppSidChecker9reserved2Ev @ 27 NONAME
+	_ZN14CAppSidChecker9reserved3Ev @ 28 NONAME
+	_ZN14CAppSidCheckerD0Ev @ 29 NONAME
+	_ZN14CAppSidCheckerD1Ev @ 30 NONAME
+	_ZN14CAppSidCheckerD2Ev @ 31 NONAME
+	_ZN16CApaAppRegFinder12FindAllAppsLENS_10TScanScopeE @ 32 NONAME
+	_ZN16CApaAppRegFinder4NewLERK3RFs @ 33 NONAME
+	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 34 NONAME
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK12CDesC16Array @ 35 NONAME
+	_ZNK11CApaAppData10CapabilityER5TDes8 @ 36 NONAME
+	_ZNK11CApaAppData10IconSizesLEv @ 37 NONAME
+	_ZNK11CApaAppData10OpaqueDataEv @ 38 NONAME
+	_ZNK11CApaAppData10OwnedFilesEv @ 39 NONAME
+	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 40 NONAME
+	_ZNK11CApaAppData12IconFileNameEv @ 41 NONAME
+	_ZNK11CApaAppData14NonMbmIconFileEv @ 42 NONAME
+	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 43 NONAME
+	_ZNK11CApaAppData19ApplicationLanguageEv @ 44 NONAME
+	_ZNK11CApaAppData19DefaultScreenNumberEv @ 45 NONAME
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 46 NONAME
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 47 NONAME
+	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 48 NONAME
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 49 NONAME
+	_ZNK11CApaAppData4IconE5TSize @ 50 NONAME
+	_ZNK11CApaAppData4IconEi @ 51 NONAME
+	_ZNK11CApaAppData5ViewsEv @ 52 NONAME
+	_ZNK11CApaAppData8AppEntryEv @ 53 NONAME
+	_ZNK11CApaAppData8DataTypeERK9TDataType @ 54 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 55 NONAME
+	_ZNK11CApaAppList12AppDataByUidE4TUid @ 56 NONAME
+	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 57 NONAME
+	_ZNK11CApaAppList17AppScanInProgressEv @ 58 NONAME
+	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 59 NONAME
+	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 60 NONAME
+	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 61 NONAME
+	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 62 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 63 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 64 NONAME
+	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 65 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 66 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 67 NONAME
+	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 68 NONAME
+	_ZNK11CApaAppList5CountEv @ 69 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 70 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 71 NONAME
+	_ZNK11CApaAppList8FirstAppEi @ 72 NONAME
+	_ZNK11CApaAppList8FirstAppEv @ 73 NONAME
+	_ZNK15CApaAppViewData10IconSizesLEv @ 74 NONAME
+	_ZNK15CApaAppViewData10ScreenModeEv @ 75 NONAME
+	_ZNK15CApaAppViewData12IconFileNameEv @ 76 NONAME
+	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 77 NONAME
+	_ZNK15CApaAppViewData3UidEv @ 78 NONAME
+	_ZNK15CApaAppViewData4IconERK5TSize @ 79 NONAME
+	_ZNK16CApaAppRegFinder9DriveListEv @ 80 NONAME
+	_ZTI11CApaAppData @ 81 NONAME
+	_ZTI11CApaAppList @ 82 NONAME
+	_ZTI12CApaAppEntry @ 83 NONAME
+	_ZTI14CAppSidChecker @ 84 NONAME
+	_ZTI15CApaAppViewData @ 85 NONAME
+	_ZTI16CApaAppRegFinder @ 86 NONAME
+	_ZTI17CApaAppInfoReader @ 87 NONAME
+	_ZTV11CApaAppData @ 88 NONAME
+	_ZTV11CApaAppList @ 89 NONAME
+	_ZTV12CApaAppEntry @ 90 NONAME
+	_ZTV14CAppSidChecker @ 91 NONAME
+	_ZTV15CApaAppViewData @ 92 NONAME
+	_ZTV16CApaAppRegFinder @ 93 NONAME
+	_ZTV17CApaAppInfoReader @ 94 NONAME
+	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 95 NONAME
+	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 96 NONAME
+	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 97 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 98 NONAME
+	_ZN11CApaAppList19UninstalledAppArrayEv @ 99 NONAME
+	X @ 100 NONAME ABSENT	
+	X @ 101 NONAME ABSENT		
+	X @ 102 NONAME ABSENT	
+	X @ 103 NONAME ABSENT	
+	X @ 104 NONAME ABSENT	
+	X @ 105 NONAME ABSENT
+	X @ 106 NONAME ABSENT
+	X @ 107 NONAME ABSENT
\ No newline at end of file
--- a/appfw/apparchitecture/eabi/aplistu.def	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/eabi/aplistu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -1,22 +1,22 @@
 EXPORTS
 	_ZN11CApaAppData16CanUseScreenModeEi @ 1 NONAME
 	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 2 NONAME
-	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 3 NONAME
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 3 NONAME ABSENT
 	_ZN11CApaAppDataD0Ev @ 4 NONAME
 	_ZN11CApaAppDataD1Ev @ 5 NONAME
 	_ZN11CApaAppDataD2Ev @ 6 NONAME
-	_ZN11CApaAppList12RestartScanLEv @ 7 NONAME
+	_ZN11CApaAppList12RestartScanLEv @ 7 NONAME ABSENT
 	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 8 NONAME
 	_ZN11CApaAppList16StartIdleUpdateLEv @ 9 NONAME
-	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 10 NONAME
-	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 11 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 10 NONAME ABSENT
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 11 NONAME ABSENT
 	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 12 NONAME
-	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 13 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 13 NONAME ABSENT
 	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 14 NONAME
 	_ZN11CApaAppList4NewLER3RFsii @ 15 NONAME
 	_ZN11CApaAppList4SelfEv @ 16 NONAME
-	_ZN11CApaAppList6PurgeLEv @ 17 NONAME
-	_ZN11CApaAppList8StopScanEi @ 18 NONAME
+	_ZN11CApaAppList6PurgeLEv @ 17 NONAME ABSENT
+	_ZN11CApaAppList8StopScanEi @ 18 NONAME ABSENT
 	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 19 NONAME
 	_ZN11CApaAppListD0Ev @ 20 NONAME
 	_ZN11CApaAppListD1Ev @ 21 NONAME
@@ -30,10 +30,10 @@
 	_ZN14CAppSidCheckerD0Ev @ 29 NONAME
 	_ZN14CAppSidCheckerD1Ev @ 30 NONAME
 	_ZN14CAppSidCheckerD2Ev @ 31 NONAME
-	_ZN16CApaAppRegFinder12FindAllAppsLENS_10TScanScopeE @ 32 NONAME
-	_ZN16CApaAppRegFinder4NewLERK3RFs @ 33 NONAME
-	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 34 NONAME
-	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK12CDesC16Array @ 35 NONAME
+	_ZN16CApaAppRegFinder12FindAllAppsLENS_10TScanScopeE @ 32 NONAME ABSENT
+	_ZN16CApaAppRegFinder4NewLERK3RFs @ 33 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 34 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK12CDesC16Array @ 35 NONAME ABSENT
 	_ZNK11CApaAppData10CapabilityER5TDes8 @ 36 NONAME
 	_ZNK11CApaAppData10IconSizesLEv @ 37 NONAME
 	_ZNK11CApaAppData10OpaqueDataEv @ 38 NONAME
@@ -44,16 +44,16 @@
 	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 43 NONAME
 	_ZNK11CApaAppData19ApplicationLanguageEv @ 44 NONAME
 	_ZNK11CApaAppData19DefaultScreenNumberEv @ 45 NONAME
-	_ZNK11CApaAppData20RegistrationFileNameEv @ 46 NONAME
-	_ZNK11CApaAppData20RegistrationFileUsedEv @ 47 NONAME
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 46 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 47 NONAME ABSENT
 	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 48 NONAME
-	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 49 NONAME
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 49 NONAME ABSENT
 	_ZNK11CApaAppData4IconE5TSize @ 50 NONAME
 	_ZNK11CApaAppData4IconEi @ 51 NONAME
 	_ZNK11CApaAppData5ViewsEv @ 52 NONAME
 	_ZNK11CApaAppData8AppEntryEv @ 53 NONAME
 	_ZNK11CApaAppData8DataTypeERK9TDataType @ 54 NONAME
-	_ZNK11CApaAppData9IsPendingEv @ 55 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 55 NONAME ABSENT
 	_ZNK11CApaAppList12AppDataByUidE4TUid @ 56 NONAME
 	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 57 NONAME
 	_ZNK11CApaAppList17AppScanInProgressEv @ 58 NONAME
@@ -78,24 +78,31 @@
 	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 77 NONAME
 	_ZNK15CApaAppViewData3UidEv @ 78 NONAME
 	_ZNK15CApaAppViewData4IconERK5TSize @ 79 NONAME
-	_ZNK16CApaAppRegFinder9DriveListEv @ 80 NONAME
+	_ZNK16CApaAppRegFinder9DriveListEv @ 80 NONAME ABSENT
 	_ZTI11CApaAppData @ 81 NONAME
 	_ZTI11CApaAppList @ 82 NONAME
 	_ZTI12CApaAppEntry @ 83 NONAME
 	_ZTI14CAppSidChecker @ 84 NONAME
 	_ZTI15CApaAppViewData @ 85 NONAME
-	_ZTI16CApaAppRegFinder @ 86 NONAME
+	_ZTI16CApaAppRegFinder @ 86 NONAME ABSENT
 	_ZTI17CApaAppInfoReader @ 87 NONAME
 	_ZTV11CApaAppData @ 88 NONAME
 	_ZTV11CApaAppList @ 89 NONAME
 	_ZTV12CApaAppEntry @ 90 NONAME
 	_ZTV14CAppSidChecker @ 91 NONAME
 	_ZTV15CApaAppViewData @ 92 NONAME
-	_ZTV16CApaAppRegFinder @ 93 NONAME
+	_ZTV16CApaAppRegFinder @ 93 NONAME ABSENT
 	_ZTV17CApaAppInfoReader @ 94 NONAME
 	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 95 NONAME
 	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 96 NONAME
 	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 97 NONAME
-	_ZN11CApaAppList20AppListUpdatePendingEv @ 98 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 98 NONAME ABSENT
 	_ZN11CApaAppList19UninstalledAppArrayEv @ 99 NONAME
+	_ZN11CApaAppData4NewLERKN4Usif28CApplicationRegistrationDataER3RFsRKNS0_26RSoftwareComponentRegistryE @ 100 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLE4TUid @ 101 NONAME
+	_ZN11CApaAppList18InitializeApplistLEP19MApaAppListObserver @ 102 NONAME
+	_ZN11CApaAppData19IsLangChangePendingEv @ 103 NONAME
+	_ZN11CApaAppList14UpdateApplistLEP19MApaAppListObserverP6RArrayI17TApaAppUpdateInfoE4TUid @ 104 NONAME
+	_ZN11CApaAppList15UpdatedAppsInfoEv @ 105 NONAME
+	_ZN11CApaAppList28UpdateApplistByForceRegAppsLER13RPointerArrayIN4Usif28CApplicationRegistrationDataEE @ 106 NONAME
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/eabi/apserv_legacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,70 @@
+EXPORTS
+	_Z23NameApaServServerThreadv @ 1 NONAME
+	_Z25NameApaServStartSemaphorev @ 2 NONAME
+	_ZN13CApaFsMonitor10SetBlockedEi @ 3 NONAME
+	_ZN13CApaFsMonitor4NewLER3RFsRK7TDesC169TCallBack @ 4 NONAME
+	_ZN13CApaFsMonitor5StartE11TNotifyType @ 5 NONAME
+	_ZN13CApaFsMonitorD0Ev @ 6 NONAME
+	_ZN13CApaFsMonitorD1Ev @ 7 NONAME
+	_ZN13CApaFsMonitorD2Ev @ 8 NONAME
+	_ZN16CApaAppArcServer4NewLEP11CApaAppListP18CApaFileRecognizer @ 9 NONAME ABSENT
+	_ZN16CApaAppArcServer4NewLEv @ 10 NONAME
+	_ZN16CApaAppArcServerD0Ev @ 11 NONAME
+	_ZN16CApaAppArcServerD1Ev @ 12 NONAME
+	_ZN16CApaAppArcServerD2Ev @ 13 NONAME
+	_ZNK13CApaFsMonitor10NotifyTypeEv @ 14 NONAME
+	_ZTI13CApaFsMonitor @ 15 NONAME ; #<TI>#
+	_ZTI15CApaEComMonitor @ 16 NONAME ; #<TI>#
+	_ZTI16CApaAppArcServer @ 17 NONAME ; #<TI>#
+	_ZTI20TDesCArrayItemWriter @ 18 NONAME ABSENT ; #<TI>#
+	_ZTI20TSizeArrayItemWriter @ 19 NONAME ABSENT ; #<TI>#
+	_ZTI22CApaAppListServSession @ 20 NONAME ; #<TI>#
+	_ZTI24TViewDataArrayItemWriter @ 21 NONAME ABSENT ; #<TI>#
+	_ZTV13CApaFsMonitor @ 22 NONAME ; #<VT>#
+	_ZTV15CApaEComMonitor @ 23 NONAME ; #<VT>#
+	_ZTV16CApaAppArcServer @ 24 NONAME ; #<VT>#
+	_ZTV20TDesCArrayItemWriter @ 25 NONAME ABSENT ; #<VT>#
+	_ZTV20TSizeArrayItemWriter @ 26 NONAME ABSENT ; #<VT>#
+	_ZTV22CApaAppListServSession @ 27 NONAME ; #<VT>#
+	_ZTV24TViewDataArrayItemWriter @ 28 NONAME ABSENT ; #<VT>#
+	_ZN13CApaFsMonitor12AddLocationLERK7TDesC16 @ 29 NONAME
+	_ZTIN13CApaFsMonitor14CApaFsNotifierE @ 30 NONAME ; #<TI>#
+	_ZTVN13CApaFsMonitor14CApaFsNotifierE @ 31 NONAME ; #<VT>#
+	_ZN16CApaAppArcServer4SelfEv @ 32 NONAME
+	_ZN13CApaFsMonitor6CancelEv @ 33 NONAME
+	_Z18ApaServThreadStartPv @ 34 NONAME
+	_ZTI18CRecognitionResult @ 35 NONAME ABSENT ; #<TI>#
+	_ZTI20CApsRecognitionCache @ 36 NONAME ; #<TI>#
+	_ZTI20CCacheDirectoryEntry @ 37 NONAME ; #<TI>#
+	_ZTI23CFileRecognitionUtility @ 38 NONAME ABSENT ; #<TI>#
+	_ZTI25CRecognitionResultHashMap @ 39 NONAME ; #<TI>#
+	_ZTI27CDirectoryRecognitionResult @ 40 NONAME ABSENT ; #<TI>#
+	_ZTI30CRecognitionResultHashMapEntry @ 41 NONAME ; #<TI>#
+	_ZTV18CRecognitionResult @ 42 NONAME ABSENT ; #<VT>#
+	_ZTV20CApsRecognitionCache @ 43 NONAME ; #<VT>#
+	_ZTV20CCacheDirectoryEntry @ 44 NONAME ; #<VT>#
+	_ZTV23CFileRecognitionUtility @ 45 NONAME ABSENT ; #<VT>#
+	_ZTV25CRecognitionResultHashMap @ 46 NONAME ; #<VT>#
+	_ZTV27CDirectoryRecognitionResult @ 47 NONAME ABSENT ; #<VT>#
+	_ZTV30CRecognitionResultHashMapEntry @ 48 NONAME ; #<VT>#
+	_ZN16CUpdatedAppsList28CloseAndDeletePermanentStoreEv @ 49 NONAME ABSENT
+	_ZN16CUpdatedAppsListD0Ev @ 50 NONAME ABSENT
+	_ZN16CUpdatedAppsListD1Ev @ 51 NONAME ABSENT
+	_ZN16CUpdatedAppsListD2Ev @ 52 NONAME ABSENT
+	_ZTI16CUpdatedAppsList @ 53 NONAME ABSENT ; #<TI>#
+	_ZTV16CUpdatedAppsList @ 54 NONAME ABSENT ; #<VT>#
+	_ZNK16CUpdatedAppsList8IsInListERK7TDesC16 @ 55 NONAME ABSENT
+	_ZTIN16CUpdatedAppsList15CUpdatedAppInfoE @ 56 NONAME ABSENT ; #<TI>#
+	_ZTVN16CUpdatedAppsList15CUpdatedAppInfoE @ 57 NONAME ABSENT ; #<VT>#
+	_ZN16CApaAppArcServer14RescanCallBackEv @ 58 NONAME
+	_ZTI18CCustomAppInfoData @ 59 NONAME ABSENT ; #<TI>#
+	_ZTV18CCustomAppInfoData @ 60 NONAME ABSENT ; #<VT>#
+	KApaLoadDataRecognizersOnDemand @ 61 NONAME DATA 4
+	KApaUnloadRecognizersTimeout @ 62 NONAME DATA 4
+	_ZN16CApaAppArcServer27HandleInstallationEndEventLEv @ 63 NONAME
+	_ZN16CApaAppArcServer28HandleInstallationStartEventEv @ 64 NONAME
+	KApaDrivesToMonitor @ 65 NONAME DATA 4
+	KApaLoadMbmIconsOnDemand @ 66 NONAME DATA 4
+	_ZTI21CApaAppArcServSession @ 67 NONAME
+	_ZTV21CApaAppArcServSession @ 68 NONAME
+
--- a/appfw/apparchitecture/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/eabi/ticonforleaks_leagacyu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,433 @@
+EXPORTS
+	KMinApplicationStackSize @ 1 NONAME DATA 4
+	_Z16StartupApaServerR14MApaAppStarter @ 2 NONAME ABSENT
+	_Z23MinApplicationStackSizev @ 3 NONAME
+	_Z23StartupApaServerProcessv @ 4 NONAME
+	_ZN11CApaAppData16CanUseScreenModeEi @ 5 NONAME
+	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 6 NONAME
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 7 NONAME
+	_ZN11CApaAppDataD0Ev @ 8 NONAME
+	_ZN11CApaAppDataD1Ev @ 9 NONAME
+	_ZN11CApaAppDataD2Ev @ 10 NONAME
+	_ZN11CApaAppList12RestartScanLEv @ 11 NONAME
+	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 12 NONAME ABSENT
+	_ZN11CApaAppList15UpdatedAppsListEv @ 13 NONAME ABSENT
+	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 14 NONAME
+	_ZN11CApaAppList16StartIdleUpdateLEv @ 15 NONAME
+	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 16 NONAME ABSENT
+	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 17 NONAME ABSENT
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 18 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 19 NONAME
+	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 20 NONAME ABSENT
+	_ZN11CApaAppList4SelfEv @ 21 NONAME
+	_ZN11CApaAppList6PurgeLEv @ 22 NONAME
+	_ZN11CApaAppList8StopScanEi @ 23 NONAME
+	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 24 NONAME
+	_ZN11CApaAppListD0Ev @ 25 NONAME
+	_ZN11CApaAppListD1Ev @ 26 NONAME
+	_ZN11CApaAppListD2Ev @ 27 NONAME
+	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 28 NONAME
+	_ZN12TApaTaskList7FindAppE4TUid @ 29 NONAME
+	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 30 NONAME
+	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 31 NONAME
+	_ZN12TApaTaskList9FindByPosEi @ 32 NONAME
+	_ZN12TApaTaskListC1ER10RWsSession @ 33 NONAME
+	_ZN12TApaTaskListC2ER10RWsSession @ 34 NONAME
+	_ZN13RApaLsSession12CancelNotifyEv @ 35 NONAME
+	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 36 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 37 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 38 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 39 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 40 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 41 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 42 NONAME
+	_ZN13RApaLsSession14ClearFsSessionEv @ 43 NONAME
+	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 44 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArrayR14TRequestStatus @ 45 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArrayR14TRequestStatus @ 46 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 47 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType4TUid @ 48 NONAME
+	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayI7TDesC16E @ 49 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUid @ 50 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUidS3_ @ 51 NONAME
+	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 52 NONAME
+	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 53 NONAME
+	_ZN13RApaLsSession20CancelRecognizeFilesEv @ 54 NONAME
+	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 55 NONAME
+	_ZN13RApaLsSession23RApaLsSession_Reserved1Ev @ 56 NONAME
+	_ZN13RApaLsSession23RApaLsSession_Reserved2Ev @ 57 NONAME
+	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypel4TUidRi @ 58 NONAME
+	_ZN13RApaLsSession25NotifyOnDataMappingChangeER14TRequestStatus @ 59 NONAME
+	_ZN13RApaLsSession29RegisterNonNativeApplicationLE4TUidRK10TDriveUnitR34CApaRegistrationResourceFileWriterP33CApaLocalisableResourceFileWriterPK5RFile @ 60 NONAME
+	_ZN13RApaLsSession31CancelNotifyOnDataMappingChangeEv @ 61 NONAME
+	_ZN13RApaLsSession31DeregisterNonNativeApplicationLE4TUid @ 62 NONAME
+	_ZN13RApaLsSession33RegisterNonNativeApplicationTypeLE4TUidRK7TDesC16 @ 63 NONAME
+	_ZN13RApaLsSession35CommitNonNativeApplicationsUpdatesLEv @ 64 NONAME
+	_ZN13RApaLsSession35DeregisterNonNativeApplicationTypeLE4TUid @ 65 NONAME
+	_ZN13RApaLsSession36PrepareNonNativeApplicationsUpdatesLEv @ 66 NONAME
+	_ZN13RApaLsSession36RollbackNonNativeApplicationsUpdatesEv @ 67 NONAME
+	_ZN13RApaLsSession5CloseEv @ 68 NONAME
+	_ZN13RApaLsSession7ConnectEv @ 69 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 70 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 71 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 72 NONAME
+	_ZN13RApaLsSession9FsSessionEv @ 73 NONAME
+	_ZN13RApaLsSession9SetNotifyEiR14TRequestStatus @ 74 NONAME
+	_ZN13RApaLsSessionC1Ev @ 75 NONAME
+	_ZN13RApaLsSessionC2Ev @ 76 NONAME
+	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 77 NONAME
+	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 78 NONAME
+	_ZN16CApaMaskedBitmap4NewLEPKS_ @ 79 NONAME
+	_ZN16CApaMaskedBitmap5NewLCEv @ 80 NONAME
+	_ZN16CApaMaskedBitmapD0Ev @ 81 NONAME
+	_ZN16CApaMaskedBitmapD1Ev @ 82 NONAME
+	_ZN16CApaMaskedBitmapD2Ev @ 83 NONAME
+	_ZN17CApaSystemControl7CreateLEv @ 84 NONAME
+	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 85 NONAME
+	_ZN18TApaPictureFactoryC1Ev @ 86 NONAME
+	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 87 NONAME
+	_ZN18TApaPictureFactoryC2Ev @ 88 NONAME
+	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 89 NONAME
+	_ZN19CApaAppListNotifierD0Ev @ 90 NONAME
+	_ZN19CApaAppListNotifierD1Ev @ 91 NONAME
+	_ZN19CApaAppListNotifierD2Ev @ 92 NONAME
+	_ZN19CApaWindowGroupName11SetAppReadyEi @ 93 NONAME
+	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 94 NONAME
+	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 95 NONAME
+	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 96 NONAME
+	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 97 NONAME
+	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 98 NONAME
+	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 99 NONAME
+	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 100 NONAME
+	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 101 NONAME
+	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 102 NONAME
+	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 103 NONAME
+	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 104 NONAME
+	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 105 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 106 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 107 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 108 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 109 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 110 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 111 NONAME
+	_ZN19CApaWindowGroupName7SetBusyEi @ 112 NONAME
+	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 113 NONAME
+	_ZN19CApaWindowGroupName9SetHiddenEi @ 114 NONAME
+	_ZN19CApaWindowGroupName9SetSystemEi @ 115 NONAME
+	_ZN19CApaWindowGroupNameD0Ev @ 116 NONAME
+	_ZN19CApaWindowGroupNameD1Ev @ 117 NONAME
+	_ZN19CApaWindowGroupNameD2Ev @ 118 NONAME
+	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 119 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 120 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 121 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter6StoreLEv @ 122 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 123 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD0Ev @ 124 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD1Ev @ 125 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD2Ev @ 126 NONAME ABSENT
+	_ZN21CApaSystemControlList4NewLER3RFs @ 127 NONAME
+	_ZN21CApaSystemControlList7UpdateLEv @ 128 NONAME
+	_ZN21CApaSystemControlListD0Ev @ 129 NONAME
+	_ZN21CApaSystemControlListD1Ev @ 130 NONAME
+	_ZN21CApaSystemControlListD2Ev @ 131 NONAME
+	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 132 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 133 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 134 NONAME ABSENT
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 135 NONAME
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 136 NONAME
+	_ZN23MApaAppListServObserverC2Ev @ 137 NONAME
+	_ZN27CDataRecognitionResultArrayC1Ev @ 138 NONAME
+	_ZN27CDataRecognitionResultArrayC2Ev @ 139 NONAME
+	_ZN27CDataRecognitionResultArrayD0Ev @ 140 NONAME
+	_ZN27CDataRecognitionResultArrayD1Ev @ 141 NONAME
+	_ZN27CDataRecognitionResultArrayD2Ev @ 142 NONAME
+	_ZN31TIconLoaderAndIconArrayForLeaks27TestIconLoaderAndIconArrayLEv @ 143 NONAME
+	_ZN33CApaLocalisableResourceFileWriter4NewLERK7TDesC16S2_iS2_ @ 144 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD0Ev @ 145 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD1Ev @ 146 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD2Ev @ 147 NONAME
+	_ZN34CApaRegistrationResourceFileWriter12AddDataTypeLEiRK6TDesC8 @ 148 NONAME
+	_ZN34CApaRegistrationResourceFileWriter13SetGroupNameLERK7TDesC16 @ 149 NONAME
+	_ZN34CApaRegistrationResourceFileWriter14SetOpaqueDataLERK6TDesC8 @ 150 NONAME
+	_ZN34CApaRegistrationResourceFileWriter15SetAppIsHiddenLEi @ 151 NONAME
+	_ZN34CApaRegistrationResourceFileWriter17SetEmbeddabilityLEN17TApaAppCapability14TEmbeddabilityE @ 152 NONAME
+	_ZN34CApaRegistrationResourceFileWriter19SetSupportsNewFileLEi @ 153 NONAME
+	_ZN34CApaRegistrationResourceFileWriter21AddFileOwnershipInfoLERK7TDesC16 @ 154 NONAME
+	_ZN34CApaRegistrationResourceFileWriter22SetLaunchInBackgroundLEi @ 155 NONAME
+	_ZN34CApaRegistrationResourceFileWriter23SetDefaultScreenNumberLEi @ 156 NONAME
+	_ZN34CApaRegistrationResourceFileWriter4NewLE4TUidRK7TDesC16j @ 157 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 158 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 159 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 160 NONAME
+	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 161 NONAME ABSENT
+	_ZN8CApaDoor16SetFormatToIconLEv @ 162 NONAME
+	_ZN8CApaDoor17SetFormatToGlassLEv @ 163 NONAME
+	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 164 NONAME
+	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 165 NONAME
+	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 166 NONAME
+	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 167 NONAME
+	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 168 NONAME
+	_ZN8CApaDoor9DocumentLEi @ 169 NONAME
+	_ZN8CApaDoorD0Ev @ 170 NONAME
+	_ZN8CApaDoorD1Ev @ 171 NONAME
+	_ZN8CApaDoorD2Ev @ 172 NONAME
+	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 173 NONAME
+	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 174 NONAME
+	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 175 NONAME
+	_ZN8TApaTask16SendToBackgroundEv @ 176 NONAME
+	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 177 NONAME
+	_ZN8TApaTask17BringToForegroundEv @ 178 NONAME
+	_ZN8TApaTask7EndTaskEv @ 179 NONAME
+	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 180 NONAME
+	_ZN8TApaTask7SendKeyEii @ 181 NONAME
+	_ZN8TApaTask7SetWgIdEi @ 182 NONAME
+	_ZN8TApaTask8KillTaskEv @ 183 NONAME
+	_ZN8TApaTaskC1ER10RWsSession @ 184 NONAME
+	_ZN8TApaTaskC2ER10RWsSession @ 185 NONAME
+	_ZNK11CApaAppData10CapabilityER5TDes8 @ 186 NONAME
+	_ZNK11CApaAppData10IconSizesLEv @ 187 NONAME
+	_ZNK11CApaAppData10OpaqueDataEv @ 188 NONAME
+	_ZNK11CApaAppData10OwnedFilesEv @ 189 NONAME
+	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 190 NONAME
+	_ZNK11CApaAppData12IconFileNameEv @ 191 NONAME
+	_ZNK11CApaAppData14NonMbmIconFileEv @ 192 NONAME
+	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 193 NONAME
+	_ZNK11CApaAppData19ApplicationLanguageEv @ 194 NONAME
+	_ZNK11CApaAppData19DefaultScreenNumberEv @ 195 NONAME
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 196 NONAME
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 197 NONAME
+	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 198 NONAME
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 199 NONAME
+	_ZNK11CApaAppData4IconE5TSize @ 200 NONAME
+	_ZNK11CApaAppData4IconEi @ 201 NONAME
+	_ZNK11CApaAppData5ViewsEv @ 202 NONAME
+	_ZNK11CApaAppData8AppEntryEv @ 203 NONAME
+	_ZNK11CApaAppData8DataTypeERK9TDataType @ 204 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 205 NONAME
+	_ZNK11CApaAppList12AppDataByUidE4TUid @ 206 NONAME
+	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 207 NONAME
+	_ZNK11CApaAppList17AppScanInProgressEv @ 208 NONAME
+	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 209 NONAME
+	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 210 NONAME
+	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 211 NONAME
+	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 212 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 213 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 214 NONAME
+	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 215 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 216 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 217 NONAME
+	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 218 NONAME
+	_ZNK11CApaAppList5CountEv @ 219 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 220 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 221 NONAME
+	_ZNK11CApaAppList8FirstAppEi @ 222 NONAME
+	_ZNK11CApaAppList8FirstAppEv @ 223 NONAME
+	_ZNK13RApaLsSession10GetAllAppsEi @ 224 NONAME
+	_ZNK13RApaLsSession10GetAllAppsEv @ 225 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 226 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUidR5RFile @ 227 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 228 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 229 NONAME
+	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 230 NONAME
+	_ZNK13RApaLsSession10GetAppTypeER4TUidS0_ @ 231 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 232 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 233 NONAME
+	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 234 NONAME
+	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 235 NONAME
+	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 236 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK5RFileR22TDataRecognitionResult @ 237 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 238 NONAME
+	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 239 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK5RFileR4TUidR9TDataType @ 240 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 241 NONAME
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 242 NONAME
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 243 NONAME
+	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 244 NONAME
+	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 245 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 246 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 247 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 248 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 249 NONAME
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArray @ 250 NONAME
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArray @ 251 NONAME
+	_ZNK13RApaLsSession16GetAppByDataTypeERK9TDataType4TUidRS3_ @ 252 NONAME
+	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 253 NONAME
+	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 254 NONAME
+	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 255 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 256 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 257 NONAME
+	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 258 NONAME
+	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 259 NONAME
+	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 260 NONAME
+	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 261 NONAME
+	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 262 NONAME
+	_ZNK13RApaLsSession21MatchesSecurityPolicyERi4TUidRK15TSecurityPolicy @ 263 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK5RFileRK9TDataTypeRi @ 264 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 265 NONAME
+	_ZNK13RApaLsSession22GetDefaultScreenNumberERi4TUid @ 266 NONAME
+	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 267 NONAME
+	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 268 NONAME
+	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 269 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK5RFile4TUidRS3_R9TDataType @ 270 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 271 NONAME
+	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 272 NONAME
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 273 NONAME
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 274 NONAME
+	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 275 NONAME
+	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 276 NONAME
+	_ZNK13RApaLsSession7VersionEv @ 277 NONAME
+	_ZNK13RApaLsSession8AppCountERi @ 278 NONAME
+	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 279 NONAME
+	_ZNK15CApaAppViewData10IconSizesLEv @ 280 NONAME
+	_ZNK15CApaAppViewData10ScreenModeEv @ 281 NONAME
+	_ZNK15CApaAppViewData12IconFileNameEv @ 282 NONAME
+	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 283 NONAME
+	_ZNK15CApaAppViewData3UidEv @ 284 NONAME
+	_ZNK15CApaAppViewData4IconERK5TSize @ 285 NONAME
+	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 286 NONAME
+	_ZNK16CApaMaskedBitmap4MaskEv @ 287 NONAME
+	_ZNK17CApaSystemControl12ShortCaptionEv @ 288 NONAME
+	_ZNK17CApaSystemControl4IconEv @ 289 NONAME
+	_ZNK17CApaSystemControl4TypeEv @ 290 NONAME
+	_ZNK17CApaSystemControl7CaptionEv @ 291 NONAME
+	_ZNK17CApaSystemControl8FileNameEv @ 292 NONAME
+	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 293 NONAME
+	_ZNK18TApaAppServiceInfo3UidEv @ 294 NONAME
+	_ZNK18TApaAppServiceInfo9DataTypesEv @ 295 NONAME
+	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 296 NONAME
+	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 297 NONAME
+	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 298 NONAME
+	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 299 NONAME
+	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 300 NONAME
+	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 301 NONAME
+	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 302 NONAME
+	_ZNK19CApaWindowGroupName6AppUidEv @ 303 NONAME
+	_ZNK19CApaWindowGroupName6HiddenEv @ 304 NONAME
+	_ZNK19CApaWindowGroupName6IsBusyEv @ 305 NONAME
+	_ZNK19CApaWindowGroupName7CaptionEv @ 306 NONAME
+	_ZNK19CApaWindowGroupName7DocNameEv @ 307 NONAME
+	_ZNK19CApaWindowGroupName8IsSystemEv @ 308 NONAME
+	_ZNK21CApaSystemControlList5CountEv @ 309 NONAME
+	_ZNK21CApaSystemControlList5IndexE4TUid @ 310 NONAME
+	_ZNK21CApaSystemControlList7ControlE4TUid @ 311 NONAME
+	_ZNK21CApaSystemControlList7ControlEi @ 312 NONAME
+	_ZNK27CDataRecognitionResultArray12GetFileNameLER4TBufILi256EEj @ 313 NONAME
+	_ZNK27CDataRecognitionResultArray25GetDataRecognitionResultLER22TDataRecognitionResultj @ 314 NONAME
+	_ZNK27CDataRecognitionResultArray4PathEv @ 315 NONAME
+	_ZNK27CDataRecognitionResultArray5CountEv @ 316 NONAME
+	_ZNK8CApaDoor7AppUidLEv @ 317 NONAME
+	_ZNK8TApaTask4WgIdEv @ 318 NONAME
+	_ZNK8TApaTask6ExistsEv @ 319 NONAME
+	_ZNK8TApaTask8ThreadIdEv @ 320 NONAME
+	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 321 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 322 NONAME
+	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 323 NONAME
+	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 324 NONAME
+	_ZN11CApaAppList4NewLER3RFsii @ 325 NONAME
+	_ZN11TApaAppInfo12InternalizeLER11RReadStream @ 326 NONAME
+	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_ @ 327 NONAME
+	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_S4_ @ 328 NONAME
+	_ZN11TApaAppInfoC1Ev @ 329 NONAME
+	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_ @ 330 NONAME
+	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_S4_ @ 331 NONAME
+	_ZN11TApaAppInfoC2Ev @ 332 NONAME
+	_ZN12TApaAppEntryC1Ev @ 333 NONAME
+	_ZN12TApaAppEntryC2Ev @ 334 NONAME
+	_ZN15TApaAppViewInfo12InternalizeLER11RReadStream @ 335 NONAME
+	_ZN15TApaAppViewInfoC1E4TUidRK4TBufILi256EEi @ 336 NONAME
+	_ZN15TApaAppViewInfoC1Ev @ 337 NONAME
+	_ZN15TApaAppViewInfoC2E4TUidRK4TBufILi256EEi @ 338 NONAME
+	_ZN15TApaAppViewInfoC2Ev @ 339 NONAME
+	_ZN17TApaAppCapability12InternalizeLER11RReadStream @ 340 NONAME
+	_ZN17TApaAppCapability14CopyCapabilityER5TDes8RK6TDesC8 @ 341 NONAME
+	_ZN17TApaAppIdentifier12InternalizeLER11RReadStream @ 342 NONAME
+	_ZN17TApaAppIdentifierC1E4TUidRK4TBufILi256EE @ 343 NONAME
+	_ZN17TApaAppIdentifierC1Ev @ 344 NONAME
+	_ZN17TApaAppIdentifierC2E4TUidRK4TBufILi256EE @ 345 NONAME
+	_ZN17TApaAppIdentifierC2Ev @ 346 NONAME
+	_ZN18TApaAppServiceInfo12InternalizeLER11RReadStream @ 347 NONAME
+	_ZN18TApaAppServiceInfo7ReleaseEv @ 348 NONAME
+	_ZN18TApaAppServiceInfo9DataTypesEv @ 349 NONAME
+	_ZN18TApaAppServiceInfoC1E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 350 NONAME
+	_ZN18TApaAppServiceInfoC1Ev @ 351 NONAME
+	_ZN18TApaAppServiceInfoC2E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 352 NONAME
+	_ZN18TApaAppServiceInfoC2Ev @ 353 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved1Ev @ 354 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved2Ev @ 355 NONAME
+	_ZN23CApaAppServiceInfoArrayC2Ev @ 356 NONAME
+	_ZN23TApaEmbeddabilityFilter16AddEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 357 NONAME
+	_ZN23TApaEmbeddabilityFilterC1Ev @ 358 NONAME
+	_ZN23TApaEmbeddabilityFilterC2Ev @ 359 NONAME
+	_ZNK11TApaAppInfo12ExternalizeLER12RWriteStream @ 360 NONAME
+	_ZNK15TApaAppViewInfo12ExternalizeLER12RWriteStream @ 361 NONAME
+	_ZNK17TApaAppCapability12ExternalizeLER12RWriteStream @ 362 NONAME
+	_ZNK17TApaAppIdentifier12ExternalizeLER12RWriteStream @ 363 NONAME
+	_ZNK18TApaAppServiceInfo12ExternalizeLER12RWriteStream @ 364 NONAME
+	_ZNK23TApaEmbeddabilityFilter20MatchesEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 365 NONAME
+	_ZTI11CApaAppData @ 366 NONAME
+	_ZTI11CApaAppList @ 367 NONAME
+	_ZTI12CApaAppEntry @ 368 NONAME
+	_ZTI13RApaLsSession @ 369 NONAME
+	_ZTI15CApaAppViewData @ 370 NONAME
+	_ZTI15CApaIconPicture @ 371 NONAME
+	_ZTI16CApaMaskedBitmap @ 372 NONAME
+	_ZTI17CApaAppInfoReader @ 373 NONAME
+	_ZTI17CApaSystemControl @ 374 NONAME
+	_ZTI18TApaPictureFactory @ 375 NONAME
+	_ZTI19CApaAppListNotifier @ 376 NONAME
+	_ZTI19CApaWindowGroupName @ 377 NONAME
+	_ZTI21CApaSystemControlList @ 378 NONAME
+	_ZTI23CApaAppServiceInfoArray @ 379 NONAME
+	_ZTI23MApaAppListServObserver @ 380 NONAME
+	_ZTI27CDataRecognitionResultArray @ 381 NONAME
+	_ZTI33CApaLocalisableResourceFileWriter @ 382 NONAME
+	_ZTI34CApaRegistrationResourceFileWriter @ 383 NONAME
+	_ZTI7HBufBuf @ 384 NONAME
+	_ZTI8CApaDoor @ 385 NONAME
+	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 386 NONAME
+	_ZTV11CApaAppData @ 387 NONAME
+	_ZTV11CApaAppList @ 388 NONAME
+	_ZTV12CApaAppEntry @ 389 NONAME
+	_ZTV13RApaLsSession @ 390 NONAME
+	_ZTV15CApaAppViewData @ 391 NONAME
+	_ZTV15CApaIconPicture @ 392 NONAME
+	_ZTV16CApaMaskedBitmap @ 393 NONAME
+	_ZTV17CApaAppInfoReader @ 394 NONAME
+	_ZTV17CApaSystemControl @ 395 NONAME
+	_ZTV18TApaPictureFactory @ 396 NONAME
+	_ZTV19CApaAppListNotifier @ 397 NONAME
+	_ZTV19CApaWindowGroupName @ 398 NONAME
+	_ZTV21CApaSystemControlList @ 399 NONAME
+	_ZTV23CApaAppServiceInfoArray @ 400 NONAME
+	_ZTV23MApaAppListServObserver @ 401 NONAME
+	_ZTV27CDataRecognitionResultArray @ 402 NONAME
+	_ZTV33CApaLocalisableResourceFileWriter @ 403 NONAME
+	_ZTV34CApaRegistrationResourceFileWriter @ 404 NONAME
+	_ZTV7HBufBuf @ 405 NONAME
+	_ZTV8CApaDoor @ 406 NONAME
+	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 407 NONAME
+	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 408 NONAME
+	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 409 NONAME
+	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 410 NONAME
+	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 411 NONAME
+	_ZN31TIconLoaderAndIconArrayForLeaks25TestIconCaptionOverridesLEv @ 412 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 413 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 414 NONAME
+	_ZN11CApaAppList19UninstalledAppArrayEv @ 415 NONAME
+	X @ 416 NONAME ABSENT
+	X @ 417 NONAME ABSENT
+	X @ 418 NONAME ABSENT
+	X @ 419 NONAME ABSENT
+	X @ 420 NONAME ABSENT
+	X @ 421 NONAME ABSENT
+	X @ 422 NONAME ABSENT
+	X @ 423 NONAME ABSENT
+	X @ 424 NONAME ABSENT
+	X @ 425 NONAME ABSENT
+	X @ 426 NONAME ABSENT
+	X @ 427 NONAME ABSENT
+	X @ 428 NONAME ABSENT
+	X @ 429 NONAME ABSENT
+	X @ 430 NONAME ABSENT
+	X @ 431 NONAME ABSENT
+	X @ 432 NONAME ABSENT	
\ No newline at end of file
--- a/appfw/apparchitecture/group/APFILE.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/APFILE.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -38,17 +38,17 @@
 
 macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
 
-source			APFREC.CPP APFSTD.CPP APRuleBased.CPP ApLaunchChecker.cpp apinstallationmonitor.cpp
+source			APFREC.CPP APFSTD.CPP APRuleBased.CPP ApLaunchChecker.cpp
 source			apfmimecontentpolicy.cpp
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+source apinstallationmonitor.cpp
+#endif
+
 library         euser.lib efsrv.lib apparc.lib apgrfx.lib bafl.lib apserv.lib ecom.lib 
 library			apmime.lib caf.lib
-
+library			centralrepository.lib
 
-START RESOURCE ../apfile/apfmimecontentpolicy.rss
-HEADER  
-TARGETPATH   /resource/apps
-END
 
 START WINS
 	baseaddress	0x43000000
@@ -57,6 +57,12 @@
 START MARM
 END
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	deffile APFILE.DEF
+#else
+	deffile apfile_legacy.def
+#endif
+
 // For the benefit of Eshell which cannot build a resource registration file
 START RESOURCE	eshell_reg.rss
 TARGETPATH	/private/10003a3f/apps
--- a/appfw/apparchitecture/group/APGRFX.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/APGRFX.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -42,10 +42,18 @@
 source			apgnotif.cpp APSCLI.CPP apgconstdata.cpp
 SOURCE			apsecutils.cpp
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+SOURCE			apgupdate.cpp
+#endif
+
 library         euser.lib apparc.lib apmime.lib gdi.lib estor.lib efsrv.lib fbscli.lib
 library         bitgdi.lib ws32.lib bafl.lib
 library         apserv.lib apfile.lib
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+library			scrclient.lib
+#endif
+
 #ifdef USE_IH_RAISE_EVENT
 LIBRARY			instrumentationhandler.lib
 #endif // USE_IH_RAISE_EVENT
@@ -56,7 +64,12 @@
 
 macro			SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
 
-deffile			APGRFX.DEF
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	deffile APGRFX.DEF
+#else
+	deffile apgrfx_legacy.def
+#endif
+
 
 START WINS
 	baseaddress	0x42F00000
--- a/appfw/apparchitecture/group/APLIST.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/APLIST.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -32,18 +32,18 @@
 
 option MSVC /Od
 
+
 SOURCEPATH	../aplist
 
 userinclude	../inc
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
-source		aplapplist.cpp	aplapplistitem.cpp aplappinforeader.cpp aplappregfinder.cpp apsidchecker.cpp
+source		aplapplist.cpp	aplapplistitem.cpp aplappinforeader.cpp apsidchecker.cpp
 source		apsiconcaptionoverride.cpp
-// source       APGCTL.CPP apgdoor.cpp APGICNFL.CPP APGSTD.CPP APGTASK.CPP
-// source	APGWGNAM.CPP apgcli.cpp apgstart.cpp apgrecog.cpp APGPRIV.CPP
-// source	apgnotif.cpp APGAIR.CPP APGAIRV2.CPP APSCLI.CPP APGCONSTDATA.CPP
-// SOURCE	apsecutils.cpp
-// source       APGAPLSTV2.CPP
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+source aplappregfinder.cpp
+#endif
 
 library         euser.lib gdi.lib estor.lib efsrv.lib fbscli.lib
 library         bitgdi.lib ws32.lib bafl.lib ecom.lib 
@@ -59,6 +59,10 @@
 library 		apmime.lib 	// TDataType referenced from CApaAppData
 library			centralrepository.lib
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+library			scrclient.lib
+#endif
+
 //library         	apserv.lib apfile.lib apparc.lib 
 
 #ifdef USE_IH_RAISE_EVENT
@@ -75,4 +79,12 @@
 START MARM
 END
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	deffile aplist.def
+#else
+	deffile aplist_legacy.def
+#endif
+
+
+
 SMPSAFE
--- a/appfw/apparchitecture/group/APSERV.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/APSERV.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -41,16 +41,27 @@
 source          APSSERV.CPP APSSES.CPP APSSTD.CPP APSSCAN.CPP
 source          APSSTART.CPP APSRECCACHE.cpp APSRECUTIL.CPP
 source	        APSCONSTDATA.CPP
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 source          apsnnapps.cpp apsnnappupdates.cpp
+#endif
 
 
 library         euser.lib efsrv.lib apparc.lib apgrfx.lib apmime.lib fbscli.lib apfile.lib
 library         estor.lib bafl.lib ws32.lib ecom.lib
 library		aplist.lib
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+library		scrclient.lib
+library		sisregistryclient.lib
+#endif
+
 macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
 
-deffile 	APSERV.DEF
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	deffile APSERV.DEF
+#else
+	deffile apserv_legacy.def
+#endif
 
 START WINS
 	baseaddress	0x43700000
--- a/appfw/apparchitecture/group/BLD.INF	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/BLD.INF	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -60,11 +60,17 @@
 ../inc/APFCTLF.H SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(apfctlf.h)
 ../inc/APRuleBased.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(aprulebased.h)
 ../inc/ApLaunchChecker.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(aplaunchchecker.h)
+
 ../inc/ApSidChecker.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(apsidchecker.h)
 
 // Files from gincc.prj
 ../inc/APGAPLST.H SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(apgaplst.h)
 ../inc/APGCLI.H SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(apgcli.h)
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../inc/apgupdate.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(apgupdate.h)
+#endif
+
 ../inc/APGDOOR.H SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(apgdoor.h)
 ../inc/APGICNFL.H SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(apgicnfl.h)
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
@@ -100,6 +106,8 @@
 // ConfML files
 ../conf/apparchitecture.confml          		MW_LAYER_EXPORTS_CONFML(apparchitecture.confml)
 ../conf/apparchitecture_1028583d.crml   		MW_LAYER_EXPORTS_CRML(apparchitecture_1028583d.crml)
+../conf/apparchitecture_closedcontentextinfo.confml          		MW_LAYER_EXPORTS_CONFML(apparchitecture_closedcontentextinfo.confml)
+../conf/apparchitecture_closedcontentextinfo_10003a3f.crml   		MW_LAYER_EXPORTS_CRML(apparchitecture_closedcontentextinfo_10003a3f.crml)
 
 PRJ_MMPFILES
 
@@ -128,13 +136,28 @@
 // i.e. tests where no user input is required.  The default will apply if neither "manual"
 // or "support" is specified.
 ../tef/apparctestserver.MMP
+
 ../tef/TAppInstall/TestAppInstall.mmp
-../tef/TSTAPP_embedded.MMP 	support
-../tef/TSTAPP_standalone.MMP	support
-../tef/m_ctrl_v2.mmp	support
+../tef/CustomiseDefaultIconApp.mmp	support
+../tef/TCtrlPnlApp.mmp	support
+../tef/T_DataPrioritySystem3.mmp	support
+../tef/T_groupname.mmp	support
+../tef/T_groupname_ver1.mmp	support
+../tef/T_groupname_ver2.mmp	support
+../tef/TestTrustedPriorityApp1.mmp	support
+../tef/TestTrustedPriorityApp2.mmp	support
+../tef/TestUnTrustedPriorityApp1.mmp support
+../tef/TestUnTrustedPriorityApp2.mmp support
+../tef/openservice1app.mmp	support
+../tef/openservice2app.mmp	support
+../tef/serverapp.mmp	support
+../tef/serverapp2.mmp	support
+../tef/serverapp3.mmp	support
+../tef/serverapp4.mmp	support
+../tef/serverapp6.mmp	support
+../tef/serverapp7.mmp	support
 ../tef/SimpleApparcTestApp.mmp	support
 ../tef/zerosizedicontestapp.mmp	support
-../tef/TEXE_V2.MMP 	support
 ../tef/TAppNotEmbeddable_v2.mmp support
 ../tef/TAppEmbeddable_embedded.mmp support
 ../tef/TAppEmbeddable_standalone.mmp support
@@ -145,61 +168,35 @@
 ../tef/TStartDocApp_v2.mmp support
 ../tef/t_winchainChild.mmp support
 ../tef/t_winchainLaunch.mmp support
-../tef/TLongUrlRecognizer_v2.mmp support
-../tef/TRApaLsSessionStartAppTestRecognizer_v2.mmp support
 ../tef/TRApaLsSessionStartAppTestApp_v2.mmp support
 ../tef/tRuleBasedApps/tRuleBasedApp1.mmp support
 ../tef/tRuleBasedApps/tRuleBasedApp2.mmp support
 ../tef/tRuleBasedApps/tRuleBasedApp3.mmp support
 ../tef/tRuleBasedApps/tRuleBasedApp4.mmp support
-../tef/TCmdLineExe.mmp 	support
 ../tef/TApparcTestApp.mmp support
-../tef/TAppLaunchChecker.mmp support
-../tef/TAppLaunchChecker2.mmp support
-../tef/TNonNativeAppLaunchChecker.mmp support
 ../tef/app_CTRL.MMP
-../tef/app_CTRL2.MMP
 ../tef/T_EnvSlots/T_EnvSlots.MMP
-../tef/TESTREC/TESTREC.MMP
 ../tef/ParentProcess.mmp
 ../tef/ChildI.mmp
 ../tef/ChildII.mmp
 ../tef/ChildIII.mmp
-../tef/tssaac/tssaac.mmp
-../tef/tssaac/tssaac_tapp.mmp
 ../tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP
 ../tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP
-../tef/TBufferOnlyRec/TBufferOnlyRec.mmp
-../tef/TNonNative/TNonNativeRec.mmp
 ../tef/TNonNative/TNNApp1.mmp
 ../tef/TNonNative/TNNApp2.mmp
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../tef/TSidChecker/TestSidChecker.mmp
-../tef/TMimeRec/recmime.MMP
+#endif
+
 ../tef/TEndTaskTestApp/EndTaskTestApp.mmp
 ../tef/tlargestack/tlargestackapp.mmp
 ../tef/UnProctectedUidApp.mmp	support
-../tef/TIconLoaderAndIconArrayForLeaks.mmp
-//  RecMime_1 binaries are used to install and uninstall the mime type recognizer during runtime in TRApaLsSessionTestStep.
-//../tef/TMimeRec1/RecMime_1.MMP
 ../tef/tupgradeiconapp/tupgradeiconapp.mmp
 ../tef/tnotifydrivesapp/tnotifydrivesapp.mmp
-../tef/TRecUpgrade/recupgrade.mmp
-//*****************************************************************************************************************************************************************************************************
-//recupgrade_1 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
-//              It is build for armv5 and rename to recupgrade_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_1.cpp then uncomment 
-//              “recupgrade_1.MMP” , build , rename (.dll) and copy as mentioned above .
-//*****************************************************************************************************************************************************************************************************
-//../tef/TRecUpgrade_1/recupgrade_1.MMP
-
+../tef/ticoncaptionoverride.mmp
 ../tef/testapp/testforceregistrationapp1/testforceregistrationapp1.mmp
 
-// ***************************************************************************************************************************************************************************************************
-// recupgrade_2 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
-//              It is build for armv5 and rename to recupgrade2_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_2.cpp then uncomment 
-//              “recupgrade_2.MMP” , build , rename (.dll) and copy as mentioned above .
-// ***************************************************************************************************************************************************************************************************
-//../tef/TRecUpgrade_2/recupgrade_2.MMP
-../tef/ticoncaptionoverride.mmp
 // testupdregappuninstallation is used in t_serviceregistry test. If any changes done to
 // this application, uncomment testupdregappuninstallation.mmp file and build it.
 // Then comment it and copy the testupdregappuninstallation_reg.rsc file to ..\tdata folder.
@@ -213,9 +210,73 @@
 //../tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.mmp
 
 
+//plugins
+../tef/TNonNativeAppLaunchChecker.mmp support
+../tef/TAppLaunchChecker.mmp support
+../tef/TAppLaunchChecker2.mmp support
+../tef/TESTREC/TESTREC.MMP
+../tef/TBufferOnlyRec/TBufferOnlyRec.mmp
+../tef/TMimeRec/recmime.MMP
+//  RecMime_1 binaries are used to install and uninstall the mime type recognizer during runtime in TRApaLsSessionTestStep.
+//../tef/TMimeRec1/RecMime_1.MMP
+
+
+../tef/m_ctrl_v2.mmp	support
+../tef/m_ctrl_v2_Stub.mmp
+../tef/TSTAPP_embedded.MMP 	support
+../tef/TCmdLineExe.mmp 	support
+../tef/app_CTRL2.MMP
+../tef/app_CTRL2_stub.MMP
+../tef/tssaac/tssaac.mmp
+../tef/tssaac/tssaac_tapp.mmp
+../tef/TEXE_V2.MMP 	support
+
+
+../tef/TSTAPP_standalone.MMP	support
+../tef/TSTAPP_standalone_Stub.MMP
+../tef/TNonNative/TNonNativeRec.mmp
+../tef/TLongUrlRecognizer_v2.mmp support
+../tef/TRApaLsSessionStartAppTestRecognizer_v2.mmp support
+
+../tef/TIconLoaderAndIconArrayForLeaks.mmp
+
+../tef/TRecUpgrade/recupgrade.mmp
+../tef/refnativeplugin/refnativeplugin.mmp
+
+//*****************************************************************************************************************************************************************************************************
+//recupgrade_1 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
+//              It is build for armv5 and rename to recupgrade_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_1.cpp then uncomment 
+//              “recupgrade_1.MMP” , build , rename (.dll) and copy as mentioned above .
+//*****************************************************************************************************************************************************************************************************
+//../tef/TRecUpgrade_1/recupgrade_1.MMP
+
+
+// ***************************************************************************************************************************************************************************************************
+// recupgrade_2 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
+//              It is build for armv5 and rename to recupgrade2_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_2.cpp then uncomment 
+//              “recupgrade_2.MMP” , build , rename (.dll) and copy as mentioned above .
+// ***************************************************************************************************************************************************************************************************
+//../tef/TRecUpgrade_2/recupgrade_2.MMP
+
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../tef/forceregapps/forceregapp1.mmp
+../tef/forceregapps/forceregapp2.mmp
+../tef/forceregapps/TForceRegAppRec.mmp
+../tef/tnonnativeruntime/tnonnativeruntime.mmp
+#endif
+
+makefile ../tef/testpkg/preparesis.fil
+makefile ../tef/testpkg/preparesis_stub.fil
+
 PRJ_TESTEXPORTS
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../group/apparcTest.iby /epoc32/rom/include/apparctest.iby
+#else
+../group/apparcTest_new.iby /epoc32/rom/include/apparctest.iby
+#endif
+
 
 ../tef/scripts/hardware/apparctest_run.bat                  z:/apparctest/apparctest_run.bat
 ../tef/scripts/emulator/apparctest_run.bat                  /epoc32/release/winscw/udeb/apparctest_run.bat
@@ -274,6 +335,12 @@
 ../tef/scripts/apparctest_t_servicebase.script				z:/apparctest/apparctest_t_servicebase.script
 ../tef/scripts/apparctest_t_RecUpgrade.script         		z:/apparctest/apparctest_t_recupgrade.script
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../tef/scripts/apparctest_t_UpdateAppList.script			z:/apparctest/apparctest_t_updateapplist.script
+../tef/scripts/apparctest_t_forcereg.script					z:/apparctest/apparctest_t_forcereg.script
+../tef/scripts/apparctest_t_clientnotif.script				z:/apparctest/apparctest_t_clientnotif.script
+../tef/scripts/apparctest_t_nonnativetest.script			z:/apparctest/apparctest_t_nonnativetest.script
+#endif
 
 //SysStart Apparc Scripts
 ../tef/scripts/apparctest_T_TestStartApp1L.script			z:/apparctest/apparctest_t_teststartapp1l.script		
@@ -309,17 +376,38 @@
 ../tef/tssaac/scripts/emulator/sysstart_apparc_setup.bat			/epoc32/release/winscw/urel/z/apparctest/sysstart_apparc_setup.bat
 ../tef/tssaac/scripts/emulator/sysstart_apparc_checkEpocWind.bat	/epoc32/release/winscw/urel/z/apparctest/sysstart_apparc_checkepocwind.bat
 
-../tef/tupgradeiconapp/tupgradeiconapp.mbm					/epoc32/winscw/c/resource/apps/tupgradeiconapp.mbm
+../tef/tupgradeiconapp/tupgradeiconapp.mbm					/epoc32/release/winscw/udeb/z/apparctestregfiles/tupgradeiconapp.mbm
 
 // epoc32\data
-../tef/tstappviewneg.xyz									/epoc32/data/z/resource/apps/tstappviewneg.xyz
+
+// export certificates for creating sis files
+../tef/testpkg/Nokia_RnDCert_02.der							/epoc32/tools/Nokia_RnDCert_02.der
+../tef/testpkg/Nokia_RnDCert_02.key							/epoc32/tools/Nokia_RnDCert_02.key
+../tef/testpkg/swicertstore.dat								/epoc32/release/winscw/udeb/z/resource/swicertstore.dat
+
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../tef/tstnnapp.mbm											/epoc32/data/z/resource/apps/tstnnapp.mbm
+../tdata/AAA_reg.Rsc 										/epoc32/data/z/apparctest/aaa_reg.rsc
+#endif
+
+../tdata/forcegtestapp1.frg1								/epoc32/data/z/apparctest/forcegtestapp1.frg1
+../tdata/forcegtestapp2.frg2								/epoc32/data/z/apparctest/forcegtestapp2.frg2
+../tdata/scr_test.db										/epoc32/data/z/apparctest/scr_test.db
+
 ../tef/tstappviewneg.mbm									/epoc32/data/z/resource/apps/tstappviewneg.mbm
-../tef/tstnnapp.mbm									/epoc32/data/z/resource/apps/tstnnapp.mbm
-../tef/App_ctrl.MBM											/epoc32/data/z/system/data/app_ctrl.mbm
-../tef/zerosizedicon.mbm									/epoc32/data/Z/resource/apps/zerosizedicon.mbm
-../tef/svg_icon.svg											/epoc32/data/z/system/data/svg_icon.svg
-../tdata/AAA_reg.Rsc 										/epoc32/data/z/apparctest/aaa_reg.rsc
+../tef/App_ctrl.MBM											/epoc32/release/winscw/udeb/z/apparctestregfiles/app_ctrl.mbm
+../tef/svg_icon.svg											/epoc32/release/winscw/udeb/z/apparctestregfiles/svg_icon.svg
+../tef/zerosizedicon.mbm									/epoc32/release/winscw/udeb/z/apparctestregfiles/zerosizedicon.mbm
 ../tdata/Corrupted_reg.RSC									/epoc32/data/z/apparctest/corrupted_reg.rsc
+
+../tdata/testfile4.txt 										/epoc32/data/z/system/data/testpath/filtertests/testfile4.txt
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/apparctestregfiles/tstappviewneg.xyz
+../tef/tstappviewneg.xyz									/epoc32/data/z/resource/apps/tstappviewneg.xyz
+../tdata/GIF.NNA1 											/epoc32/data/z/private/101f289c/gif.nna1
+../tdata/HTML.NNA2 											/epoc32/data/z/private/101f289c/html.nna2
+../tdata/CONTACT.NNA3 										/epoc32/data/z/private/101f289c/contact.nna3
+../tdata/TXT.NNA4 											/epoc32/data/z/private/101f289c/txt.nna4
 ../tdata/TSTAPPU.DOC 										/epoc32/data/z/system/data/tstapp.doc
 ../tdata/zero_len.txt 										/epoc32/data/z/system/data/zero_len.txt
 ../tdata/one_byte.txt 										/epoc32/data/z/system/data/one_byte.txt
@@ -329,33 +417,48 @@
 ../tdata/testfile1.txt 										/epoc32/data/z/system/data/testpath/filtertests/testfile1.txt
 ../tdata/testfile2.txt 										/epoc32/data/z/system/data/testpath/filtertests/testfile2.txt
 ../tdata/testfile3.txt 										/epoc32/data/z/system/data/testpath/filtertests/testfile3.txt
-../tdata/testfile4.txt 										/epoc32/data/z/system/data/testpath/filtertests/testfile4.txt
-../tdata/GIF.NNA1 											/epoc32/data/z/private/101f289c/gif.nna1
-../tdata/HTML.NNA2 											/epoc32/data/z/private/101f289c/html.nna2
-../tdata/CONTACT.NNA3 										/epoc32/data/z/private/101f289c/contact.nna3
-../tdata/TXT.NNA4 											/epoc32/data/z/private/101f289c/txt.nna4
 ../tdata/FileWithUnknownMimeType.UnrecognisableExtention	/epoc32/data/z/system/data/filewithunknownmimetype.unrecognisableextention
 ../tdata/TApsRecogAppTest.mmr								/epoc32/data/z/system/data/tapsrecogapptest.mmr
 
-../tdata/TApsRecogUpgradeTest.upg								/epoc32/data/z/system/data/tapsrecogupgradetest.upg
-../tdata/TApsRecogUpgradeTest.upr								/epoc32/data/z/system/data/tapsrecogupgradetest.upr
+../tdata/TApsRecogUpgradeTest.upg				/epoc32/data/z/system/data/tapsrecogupgradetest.upg
+../tdata/TApsRecogUpgradeTest.upr				/epoc32/data/z/system/data/tapsrecogupgradetest.upr
 ../tdata/mimecontentpolicy/sd_goo.dcf			/epoc32/data/z/system/data/sd_goo.dcf
 ../tdata/mimecontentpolicy/fl_goo.dm			/epoc32/data/z/system/data/fl_goo.dm
-../tdata/mimecontentpolicy/jpeg_wes.dm		/epoc32/data/z/system/data/jpeg_wes.dm
-../tdata/mimecontentpolicy/gif_wallpaper.gif		/epoc32/data/z/system/data/gif_wallpaper.gif
+../tdata/mimecontentpolicy/jpeg_wes.dm			/epoc32/data/z/system/data/jpeg_wes.dm
+../tdata/mimecontentpolicy/gif_wallpaper.gif	/epoc32/data/z/system/data/gif_wallpaper.gif
 ../tdata/mimecontentpolicy/propelli.jpg	 		/epoc32/data/z/system/data/propelli.jpg
 ../tdata/mimecontentpolicy/type-r.jpg			/epoc32/data/z/system/data/type-r.jpg
 ../tdata/1028583d.txt 							/epoc32/data/z/private/10202be9/1028583d.txt //test Central Repository initialisation file
+../tdata/10003a3f.txt 							/epoc32/data/z/private/10202be9/10003a3f.txt //Test repository file contains closed content and extension information
+
 
 // WINSCW UDEB
-../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/resource/apps/tstappviewneg.xyz
-../tef/tstappviewneg.mbm									/epoc32/release/winscw/udeb/z/resource/apps/tstappviewneg.mbm
+// exporting db & certstore for winscw
+../tdata/scr.db										/epoc32/release/winscw/udeb/z/sys/install/scr/provisioned/scr.db
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../tef/tstnnapp.mbm									/epoc32/release/winscw/udeb/z/resource/apps/tstnnapp.mbm
 ../tef/App_ctrl.MBM											/epoc32/release/winscw/udeb/z/resource/apps/app_ctrl.mbm
-../tef/zerosizedicon.mbm									/epoc32/release/winscw/udeb/z/resource/apps/zerosizedicon.mbm
 ../tef/svg_icon.svg											/epoc32/release/winscw/udeb/z/resource/apps/svg_icon.svg
 ../tdata/AAA_reg.Rsc 										/epoc32/release/winscw/udeb/z/apparctest/aaa_reg.rsc 
+../tdata/102081cf_reg.rsc									/epoc32/release/winscw/udeb/z/system/data/102081cf_reg.rsc
+../tdata/102081ce_reg.rsc									/epoc32/release/winscw/udeb/z/system/data/102081ce_reg.rsc
+../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/winscw/udeb/z/system/data/testupdregappuninstallation_reg.rsc
+../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/winscw/udeb/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+../tef/zerosizedicon.mbm									/epoc32/release/winscw/udeb/z/apparctestregfiles/zerosizedicon.mbm
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/apparctestregfiles/tstappviewneg.xyz
+#endif
+
+../tdata/scr_test.db										/epoc32/release/winscw/udeb/z/apparctest/scr_test.db
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/resource/apps/tstappviewneg.xyz
+../tef/tstappviewneg.mbm									/epoc32/release/winscw/udeb/z/apparctestregfiles/tstappviewneg.mbm
+../tef/tstappviewneg.mbm									/epoc32/release/winscw/udeb/z/resource/apps/tstappviewneg.mbm
 ../tdata/Corrupted_reg.RSC									/epoc32/release/winscw/udeb/z/apparctest/corrupted_reg.rsc
+
+../tdata/GIF.NNA1 											/epoc32/release/winscw/udeb/z/private/101f289c/gif.nna1
+../tdata/HTML.NNA2 											/epoc32/release/winscw/udeb/z/private/101f289c/html.nna2
+../tdata/CONTACT.NNA3 										/epoc32/release/winscw/udeb/z/private/101f289c/contact.nna3
+../tdata/TXT.NNA4 											/epoc32/release/winscw/udeb/z/private/101f289c/txt.nna4
 ../tdata/TSTAPPU.DOC 										/epoc32/release/winscw/udeb/z/system/data/tstapp.doc
 ../tdata/zero_len.txt 										/epoc32/release/winscw/udeb/z/system/data/zero_len.txt
 ../tdata/one_byte.txt 										/epoc32/release/winscw/udeb/z/system/data/one_byte.txt
@@ -366,37 +469,42 @@
 ../tdata/testfile2.txt									 	/epoc32/release/winscw/udeb/z/system/data/testpath/filtertests/testfile2.txt
 ../tdata/testfile3.txt									 	/epoc32/release/winscw/udeb/z/system/data/testpath/filtertests/testfile3.txt
 ../tdata/testfile4.txt 										/epoc32/release/winscw/udeb/z/system/data/testpath/filtertests/testfile4.txt
-../tdata/GIF.NNA1 											/epoc32/release/winscw/udeb/z/private/101f289c/gif.nna1
-../tdata/HTML.NNA2 											/epoc32/release/winscw/udeb/z/private/101f289c/html.nna2
-../tdata/CONTACT.NNA3 										/epoc32/release/winscw/udeb/z/private/101f289c/contact.nna3
-../tdata/TXT.NNA4 											/epoc32/release/winscw/udeb/z/private/101f289c/txt.nna4
 ../tdata/UpdatedAppsList.bin								/epoc32/release/winscw/udeb/z/system/data/updatedappslist.bin
-../tdata/102081cf_reg.rsc									/epoc32/release/winscw/udeb/z/system/data/102081cf_reg.rsc
-../tdata/102081ce_reg.rsc									/epoc32/release/winscw/udeb/z/system/data/102081ce_reg.rsc
 ../tdata/FileWithUnknownMimeType.UnrecognisableExtention	/epoc32/release/winscw/udeb/z/system/data/filewithunknownmimetype.unrecognisableextention	
 ../tdata/TApsRecogAppTest.mmr								/epoc32/release/winscw/udeb/z/system/data/tapsrecogapptest.mmr
-../tdata/recmime_1.rsc									/epoc32/release/winscw/udeb/z/system/data/recmime_1.rsc
+../tdata/recmime_1.rsc										/epoc32/release/winscw/udeb/z/system/data/recmime_1.rsc
 ../tdata/recmime_winscw.dll									/epoc32/release/winscw/udeb/z/system/data/recmime_winscw.dll
 
 ../tdata/mimecontentpolicy/sd_goo.dcf			/epoc32/release/winscw/udeb/z/system/data/sd_goo.dcf
 ../tdata/mimecontentpolicy/fl_goo.dm			/epoc32/release/winscw/udeb/z/system/data/fl_goo.dm
-../tdata/mimecontentpolicy/jpeg_wes.dm		/epoc32/release/winscw/udeb/z/system/data/jpeg_wes.dm
-../tdata/mimecontentpolicy/gif_wallpaper.gif		/epoc32/release/winscw/udeb/z/system/data/gif_wallpaper.gif
+../tdata/mimecontentpolicy/jpeg_wes.dm			/epoc32/release/winscw/udeb/z/system/data/jpeg_wes.dm
+../tdata/mimecontentpolicy/gif_wallpaper.gif	/epoc32/release/winscw/udeb/z/system/data/gif_wallpaper.gif
 ../tdata/mimecontentpolicy/propelli.jpg	 		/epoc32/release/winscw/udeb/z/system/data/propelli.jpg
 ../tdata/mimecontentpolicy/type-r.jpg			/epoc32/release/winscw/udeb/z/system/data/type-r.jpg
 ../tdata/1028583d.txt 							/epoc32/release/winscw/udeb/z/private/10202be9/1028583d.txt //test Central Repository initialisation file
-../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/winscw/udeb/z/system/data/testupdregappuninstallation_reg.rsc
-../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/winscw/udeb/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+../tdata/10003a3f.txt 							/epoc32/release/winscw/udeb/z/private/10202be9/10003a3f.txt //Test repository file contains closed content and extension information
+
 
 // WINSCW UREL
-../tef/tstappviewneg.xyz									/epoc32/release/winscw/urel/z/resource/apps/tstappviewneg.xyz
-../tef/tstappviewneg.mbm									/epoc32/release/winscw/urel/z/resource/apps/tstappviewneg.mbm
-../tef/tstnnapp.mbm									/epoc32/release/winscw/urel/z/resource/apps/tstnnapp.mbm
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../tef/tstnnapp.mbm											/epoc32/release/winscw/urel/z/resource/apps/tstnnapp.mbm
 ../tef/App_ctrl.MBM											/epoc32/release/winscw/urel/z/resource/apps/app_ctrl.mbm
-../tef/zerosizedicon.mbm									/epoc32/release/winscw/urel/z/resource/apps/zerosizedicon.mbm
 ../tef/svg_icon.svg											/epoc32/release/winscw/urel/z/resource/apps/svg_icon.svg
 ../tdata/AAA_reg.Rsc 										/epoc32/release/winscw/urel/z/apparctest/aaa_reg.rsc 
 ../tdata/Corrupted_reg.RSC									/epoc32/release/winscw/urel/z/apparctest/corrupted_reg.rsc
+../tdata/testupdregappuninstallation_reg.rsc				/epoc32/release/winscw/urel/z/system/data/testupdregappuninstallation_reg.rsc
+../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/winscw/urel/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+../tef/zerosizedicon.mbm									/epoc32/release/winscw/udeb/z/apparctestregfiles/zerosizedicon.mbm
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/apparctestregfiles/tstappviewneg.xyz
+#endif
+
+../tef/tstappviewneg.mbm									/epoc32/release/winscw/urel/z/resource/apps/tstappviewneg.mbm
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/urel/z/resource/apps/tstappviewneg.xyz
+../tdata/GIF.NNA1 											/epoc32/release/winscw/urel/z/private/101f289c/gif.nna1
+../tdata/HTML.NNA2 											/epoc32/release/winscw/urel/z/private/101f289c/html.nna2
+../tdata/CONTACT.NNA3 										/epoc32/release/winscw/urel/z/private/101f289c/contact.nna3
+../tdata/TXT.NNA4 											/epoc32/release/winscw/urel/z/private/101f289c/txt.nna4
 ../tdata/TSTAPPU.DOC 										/epoc32/release/winscw/urel/z/system/data/tstapp.doc
 ../tdata/zero_len.txt 										/epoc32/release/winscw/urel/z/system/data/zero_len.txt
 ../tdata/one_byte.txt 										/epoc32/release/winscw/urel/z/system/data/one_byte.txt
@@ -407,34 +515,41 @@
 ../tdata/testfile2.txt									 	/epoc32/release/winscw/urel/z/system/data/testpath/filtertests/testfile2.txt
 ../tdata/testfile3.txt									 	/epoc32/release/winscw/urel/z/system/data/testpath/filtertests/testfile3.txt
 ../tdata/testfile4.txt 										/epoc32/release/winscw/urel/z/system/data/testpath/filtertests/testfile4.txt
-../tdata/GIF.NNA1 											/epoc32/release/winscw/urel/z/private/101f289c/gif.nna1
-../tdata/HTML.NNA2 											/epoc32/release/winscw/urel/z/private/101f289c/html.nna2
-../tdata/CONTACT.NNA3 										/epoc32/release/winscw/urel/z/private/101f289c/contact.nna3
-../tdata/TXT.NNA4 											/epoc32/release/winscw/urel/z/private/101f289c/txt.nna4
 ../tdata/FileWithUnknownMimeType.UnrecognisableExtention	/epoc32/release/winscw/urel/z/system/data/filewithunknownmimetype.unrecognisableextention	
 ../tdata/TApsRecogAppTest.mmr 								/epoc32/release/winscw/urel/z/system/data/tapsrecogapptest.mmr
-../tdata/recmime_1.rsc									/epoc32/release/winscw/urel/z/system/data/recmime_1.rsc
+../tdata/recmime_1.rsc										/epoc32/release/winscw/urel/z/system/data/recmime_1.rsc
 ../tdata/recmime_winscw.dll									/epoc32/release/winscw/urel/z/system/data/recmime_winscw.dll
-../tdata/mimecontentpolicy/sd_goo.dcf			/epoc32/release/winscw/urel/z/system/data/sd_goo.dcf
-../tdata/mimecontentpolicy/fl_goo.dm			/epoc32/release/winscw/urel/z/system/data/fl_goo.dm
-../tdata/mimecontentpolicy/jpeg_wes.dm		/epoc32/release/winscw/urel/z/system/data/jpeg_wes.dm
-../tdata/mimecontentpolicy/gif_wallpaper.gif		/epoc32/release/winscw/urel/z/system/data/gif_wallpaper.gif
-../tdata/mimecontentpolicy/propelli.jpg	 		/epoc32/release/winscw/urel/z/system/data/propelli.jpg
-../tdata/mimecontentpolicy/type-r.jpg			/epoc32/release/winscw/urel/z/system/data/type-r.jpg
-../tdata/1028583d.txt 							/epoc32/release/winscw/urel/z/private/10202be9/1028583d.txt //test Central Repository initialisation file
-../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/winscw/urel/z/system/data/testupdregappuninstallation_reg.rsc
-../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/winscw/urel/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+../tdata/mimecontentpolicy/sd_goo.dcf						/epoc32/release/winscw/urel/z/system/data/sd_goo.dcf
+../tdata/mimecontentpolicy/fl_goo.dm						/epoc32/release/winscw/urel/z/system/data/fl_goo.dm
+../tdata/mimecontentpolicy/jpeg_wes.dm						/epoc32/release/winscw/urel/z/system/data/jpeg_wes.dm
+../tdata/mimecontentpolicy/gif_wallpaper.gif				/epoc32/release/winscw/urel/z/system/data/gif_wallpaper.gif
+../tdata/mimecontentpolicy/propelli.jpg	 					/epoc32/release/winscw/urel/z/system/data/propelli.jpg
+../tdata/mimecontentpolicy/type-r.jpg						/epoc32/release/winscw/urel/z/system/data/type-r.jpg
+../tdata/1028583d.txt 										/epoc32/release/winscw/urel/z/private/10202be9/1028583d.txt //test Central Repository initialisation file
+../tdata/10003a3f.txt 										/epoc32/release/winscw/urel/z/private/10202be9/10003a3f.txt //Test repository file contains closed content and extension information
 
 
 // ARMV5 UDEB
-../tef/tstappviewneg.xyz									/epoc32/release/armv5/udeb/z/resource/apps/tstappviewneg.xyz
-../tef/tstappviewneg.mbm									/epoc32/release/armv5/udeb/z/resource/apps/tstappviewneg.mbm
+
+// exporting db & certstore for armv5 
+../tdata/scr.db										/epoc32/data/z/sys/install/scr/provisioned/scr.db
+../tef/testpkg/swicertstore.dat						/epoc32/data/z/resource/swicertstore.dat
+
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../tef/tstnnapp.mbm									/epoc32/release/armv5/udeb/z/resource/apps/tstnnapp.mbm
-../tef/App_ctrl.MBM											/epoc32/release/armv5/udeb/z/resource/apps/app_ctrl.mbm
-../tef/zerosizedicon.mbm									/epoc32/release/armv5/udeb/z/resource/apps/zerosizedicon.mbm
-../tef/svg_icon.svg											/epoc32/release/armv5/udeb/z/resource/apps/svg_icon.svg
 ../tdata/AAA_reg.Rsc 										/epoc32/release/armv5/udeb/z/apparctest/aaa_reg.rsc 
 ../tdata/Corrupted_reg.RSC									/epoc32/release/armv5/udeb/z/apparctest/corrupted_reg.rsc
+../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/armv5/udeb/z/system/data/testupdregappuninstallation_reg.rsc
+../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/armv5/udeb/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+#endif
+../tef/tstappviewneg.mbm									/epoc32/release/armv5/udeb/z/resource/apps/tstappviewneg.mbm
+../tef/tstappviewneg.xyz									/epoc32/release/armv5/udeb/z/resource/apps/tstappviewneg.xyz
+
+../tdata/GIF.NNA1 											/epoc32/release/armv5/udeb/z/private/101f289c/gif.nna1
+../tdata/HTML.NNA2 											/epoc32/release/armv5/udeb/z/private/101f289c/html.nna2
+../tdata/CONTACT.NNA3 										/epoc32/release/armv5/udeb/z/private/101f289c/contact.nna3
+../tdata/TXT.NNA4 											/epoc32/release/armv5/udeb/z/private/101f289c/txt.nna4
 ../tdata/TSTAPPU.DOC 										/epoc32/release/armv5/udeb/tstapp.doc
 ../tdata/zero_len.txt 										/epoc32/release/armv5/udeb/zero_len.txt
 ../tdata/one_byte.txt 										/epoc32/release/armv5/udeb/one_byte.txt
@@ -445,10 +560,6 @@
 ../tdata/testfile2.txt									 	/epoc32/release/armv5/udeb/z/system/data/testpath/filtertests/testfile2.txt
 ../tdata/testfile3.txt									 	/epoc32/release/armv5/udeb/z/system/data/testpath/filtertests/testfile3.txt
 ../tdata/testfile4.txt 										/epoc32/release/armv5/udeb/z/system/data/testpath/filtertests/testfile4.txt
-../tdata/GIF.NNA1 											/epoc32/release/armv5/udeb/z/private/101f289c/gif.nna1
-../tdata/HTML.NNA2 											/epoc32/release/armv5/udeb/z/private/101f289c/html.nna2
-../tdata/CONTACT.NNA3 										/epoc32/release/armv5/udeb/z/private/101f289c/contact.nna3
-../tdata/TXT.NNA4 											/epoc32/release/armv5/udeb/z/private/101f289c/txt.nna4
 ../tdata/FileWithUnknownMimeType.UnrecognisableExtention	/epoc32/release/armv5/udeb/z/system/data/filewithunknownmimetype.unrecognisableextention	
 ../tdata/TApsRecogAppTest.mmr								/epoc32/release/armv5/udeb/z/system/data/tapsrecogapptest.mmr
 ../tdata/recmime_1.rsc									/epoc32/release/armv5/udeb/z/system/data/recmime_1.rsc
@@ -466,19 +577,34 @@
 ../tdata/recupgrade2.rsc								/epoc32/release/armv5/udeb/z/system/data/recupgrade2.rsc
 ../tdata/recupgrade_armv5_rel.dll						/epoc32/release/armv5/udeb/z/system/data/recupgrade_armv5_rel.dll
 ../tdata/recupgrade2_armv5_rel.dll						/epoc32/release/armv5/udeb/z/system/data/recupgrade2_armv5_rel.dll
-../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/armv5/udeb/z/system/data/testupdregappuninstallation_reg.rsc
-../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/armv5/udeb/z/system/data/testupgradeupdregappuninstallation_reg.rsc
 
 
 // ARMV5 UREL
-../tef/tstappviewneg.xyz									/epoc32/release/armv5/urel/z/resource/apps/tstappviewneg.xyz
-../tef/tstappviewneg.mbm									/epoc32/release/armv5/urel/z/resource/apps/tstappviewneg.mbm
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../tef/tstnnapp.mbm									/epoc32/release/armv5/urel/z/resource/apps/tstnnapp.mbm
 ../tef/App_ctrl.MBM											/epoc32/release/armv5/urel/z/resource/apps/app_ctrl.mbm
-../tef/zerosizedicon.mbm									/epoc32/release/armv5/urel/z/resource/apps/zerosizedicon.mbm
 ../tef/svg_icon.svg											/epoc32/release/armv5/urel/z/resource/apps/svg_icon.svg
 ../tdata/AAA_reg.Rsc 										/epoc32/release/armv5/urel/z/apparctest/aaa_reg.rsc 
 ../tdata/Corrupted_reg.RSC									/epoc32/release/armv5/urel/z/apparctest/corrupted_reg.rsc
+../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/armv5/urel/z/system/data/testupdregappuninstallation_reg.rsc
+../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/armv5/urel/z/system/data/testupgradeupdregappuninstallation_reg.rsc
+../tef/zerosizedicon.mbm									/epoc32/release/winscw/udeb/z/apparctestregfiles/zerosizedicon.mbm
+../tef/tstappviewneg.xyz									/epoc32/release/winscw/udeb/z/apparctestregfiles/tstappviewneg.xyz
+#endif
+../tef/tstappviewneg.xyz									/epoc32/release/armv5/urel/z/resource/apps/tstappviewneg.xyz
+../tef/tstappviewneg.mbm									/epoc32/release/armv5/urel/z/resource/apps/tstappviewneg.mbm
+../tef/tstappviewneg.mbm									/epoc32/data/z/apparctestregfiles/tstappviewneg.mbm
+../tef/App_ctrl.MBM											/epoc32/data/z/apparctestregfiles/App_ctrl.MBM
+../tef/svg_icon.svg											/epoc32/data/z/apparctestregfiles/svg_icon.svg
+../tef/tstappviewneg.xyz									/epoc32/data/z/apparctestregfiles/tstappviewneg.xyz
+../tef/tupgradeiconapp/tupgradeiconapp.mbm					/epoc32/data/z/apparctestregfiles/tupgradeiconapp.mbm
+../tef/zerosizedicon.mbm									/epoc32/data/z/apparctestregfiles/zerosizedicon.mbm
+
+../tdata/GIF.NNA1 											/epoc32/release/armv5/urel/z/private/101f289c/gif.nna1
+../tdata/HTML.NNA2 											/epoc32/release/armv5/urel/z/private/101f289c/html.nna2
+../tdata/CONTACT.NNA3 										/epoc32/release/armv5/urel/z/private/101f289c/contact.nna3
+../tdata/TXT.NNA4 											/epoc32/release/armv5/urel/z/private/101f289c/txt.nna4
 ../tdata/TSTAPPU.DOC 										/epoc32/release/armv5/urel/tstapp.doc
 ../tdata/zero_len.txt 										/epoc32/release/armv5/urel/zero_len.txt
 ../tdata/one_byte.txt 										/epoc32/release/armv5/urel/one_byte.txt
@@ -489,10 +615,6 @@
 ../tdata/testfile2.txt					 					/epoc32/release/armv5/urel/z/system/data/testpath/filtertests/testfile2.txt
 ../tdata/testfile3.txt									 	/epoc32/release/armv5/urel/z/system/data/testpath/filtertests/testfile3.txt
 ../tdata/testfile4.txt 										/epoc32/release/armv5/urel/z/system/data/testpath/filtertests/testfile4.txt
-../tdata/GIF.NNA1 											/epoc32/release/armv5/urel/z/private/101f289c/gif.nna1
-../tdata/HTML.NNA2 											/epoc32/release/armv5/urel/z/private/101f289c/html.nna2
-../tdata/CONTACT.NNA3 										/epoc32/release/armv5/urel/z/private/101f289c/contact.nna3
-../tdata/TXT.NNA4 											/epoc32/release/armv5/urel/z/private/101f289c/txt.nna4
 ../tdata/FileWithUnknownMimeType.UnrecognisableExtention	/epoc32/release/armv5/urel/z/system/data/filewithunknownmimetype.unrecognisableextention	
 ../tdata/TApsRecogAppTest.mmr 								/epoc32/release/armv5/urel/z/system/data/tapsrecogapptest.mmr
 ../tdata/recmime_1.rsc									/epoc32/release/armv5/urel/z/system/data/recmime_1.rsc
@@ -510,6 +632,4 @@
 ../tdata/recupgrade2.rsc								/epoc32/release/armv5/urel/z/system/data/recupgrade2.rsc
 ../tdata/recupgrade_armv5_rel.dll						/epoc32/release/armv5/urel/z/system/data/recupgrade_armv5_rel.dll
 ../tdata/recupgrade2_armv5_rel.dll						/epoc32/release/armv5/urel/z/system/data/recupgrade2_armv5_rel.dll
-../tdata/testupdregappuninstallation_reg.rsc			/epoc32/release/armv5/urel/z/system/data/testupdregappuninstallation_reg.rsc
-../tdata/testupgradeupdregappuninstallation_reg.rsc			/epoc32/release/armv5/urel/z/system/data/testupgradeupdregappuninstallation_reg.rsc
 
--- a/appfw/apparchitecture/group/apparc.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/apparc.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -17,6 +17,37 @@
 #ifndef __APPARC_IBY__
 #define __APPARC_IBY__
 
+#ifdef __TEXTSHELL_OBY__
+
+#include <openenv.iby>
+#include <scr.iby>
+#include <sts.iby>
+file=ABI_DIR\BUILD_DIR\sisregistryclient.dll		sys\bin\sisregistryclient.dll
+file=ABI_DIR\BUILD_DIR\sisregistryserver.exe		sys\bin\sisregistryserver.exe
+file=ABI_DIR\BUILD_DIR\plan.dll				sys\bin\plan.dll
+file=ABI_DIR\BUILD_DIR\siscontroller.dll		sys\bin\siscontroller.dll
+file=ABI_DIR\BUILD_DIR\apprscparser.dll			sys\bin\apprscparser.dll
+file=ABI_DIR\BUILD_DIR\swtypereginfo.dll		sys\bin\swtypereginfo.dll
+file=ABI_DIR\BUILD_DIR\swidataprovider.dll		sys\bin\swidataprovider.dll
+file=ABI_DIR\BUILD_DIR\securitymanager.dll		sys\bin\securitymanager.dll
+file=ABI_DIR\BUILD_DIR\sislauncherclient.dll		sys\bin\sislauncherclient.dll
+file=ABI_DIR\BUILD_DIR\sislauncherserver.exe		sys\bin\sislauncherserver.exe
+file=ABI_DIR\BUILD_DIR\swiobserverclient.dll		sys\bin\swiobserverclient.dll
+file=ABI_DIR\BUILD_DIR\uissclient.dll			sys\bin\uissclient.dll
+#include <asnpkcs.iby>
+#include <filetokens.iby>
+#include <certman.iby>
+#include <ocsp.iby>
+file=ABI_DIR\BUILD_DIR\devinfosupportclient.dll		sys\bin\devinfosupportclient.dll
+file=ABI_DIR\BUILD_DIR\devinfosupportcommon.dll		sys\bin\devinfosupportcommon.dll
+file=ABI_DIR\BUILD_DIR\ocspsupportclient.dll		sys\bin\ocspsupportclient.dll
+file=ABI_DIR\BUILD_DIR\ocspsupport.exe			sys\bin\ocspsupport.exe
+file=ABI_DIR\BUILD_DIR\swiobserver.exe			sys\bin\swiobserver.exe
+file=ABI_DIR\BUILD_DIR\Http.dll             		System\Libs\Http.dll
+file=ABI_DIR\BUILD_DIR\httputils.dll           		System\Libs\httputils.dll
+
+#endif
+
 REM Application Architecture
 
 file=ABI_DIR\BUILD_DIR\apparc.dll			System\Libs\apparc.dll
@@ -27,8 +58,6 @@
 file=ABI_DIR\BUILD_DIR\apsexe.exe			System\Programs\apsexe.exe
 file=ABI_DIR\BUILD_DIR\ServiceRegistry.dll	System\Libs\ServiceRegistry.dll
 
-data=MULTI_LINGUIFY(RSC ZRESOURCE\APPS\ApfMimeContentPolicy	Resource\Apps\ApfMimeContentPolicy)
-
 
 #ifndef SYMBIAN_SYSTEM_STATE_MANAGEMENT
 file=ABI_DIR\BUILD_DIR\apstart.dll			System\Libs\apstart.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/group/apparctest_new.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,313 @@
+/*
+* 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:
+*
+*/
+#ifndef __APPARCTEST_IBY__
+#define __APPARCTEST_IBY__
+
+REM Application Architecture Framework unit test iby file
+
+
+#ifndef __APPFWK_TEST_FRAMEWORK_IBY__
+	#include <appfwk_test_framework.iby>
+#endif
+
+
+file=ABI_DIR\BUILD_DIR\texe.exe				sys\bin\texe.exe
+
+file=ABI_DIR\BUILD_DIR\TCmdLineExe.exe  	sys\bin\TCmdLineExe.exe
+
+file=ABI_DIR\BUILD_DIR\tstapp.exe											sys\bin\tstapp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\tstapp_reg.rsc		private\10003a3f\import\apps\tstapp_reg.rsc
+file=ABI_DIR\BUILD_DIR\tnonnativeruntime.exe											sys\bin\tnonnativeruntime.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\tnonnativeruntime_reg.rsc		private\10003a3f\import\apps\tnonnativeruntime_reg.rsc
+data=ZRESOURCE\apps\tstapp.rsc 												Resource\apps\tstapp.rsc
+data=ZRESOURCE\apps\tstapp_loc.r01 											Resource\apps\tstapp_loc.r01
+data=ZRESOURCE\apps\tstapp_loc.r02 											Resource\apps\tstapp_loc.r02
+data=ZRESOURCE\apps\tstapp_loc.r03 											Resource\apps\tstapp_loc.r03
+data=ZRESOURCE\apps\tstapp_loc.r04 											Resource\apps\tstapp_loc.r04
+data=ZRESOURCE\apps\tstapp_loc.r05 											Resource\apps\tstapp_loc.r05
+data=ZRESOURCE\apps\tstapp_loc.rsc 											Resource\apps\tstapp_loc.rsc
+data=ZRESOURCE\apps\tstapp.mbm 												Resource\apps\tstapp.mbm
+data=ZRESOURCE\apps\tstapp02.m02 											Resource\apps\tstapp02.m02
+data=ZRESOURCE\apps\tstappview01.m01 										Resource\apps\tstappview01.m01
+data=ZRESOURCE\apps\tstappview02.k 											Resource\apps\tstappview02.k
+data=ZRESOURCE\apps\tstappview01.m02 										Resource\apps\tstappview01.m02
+data=ZRESOURCE\apps\tstappview												Resource\apps\tstappview
+data=ZRESOURCE\apps\tstappviewneg.xyz 										Resource\apps\tstappviewneg.xyz
+data=ZRESOURCE\apps\tstappviewneg.mbm 										Resource\apps\tstappviewneg.mbm
+
+
+file=ABI_DIR\BUILD_DIR\m_ctrl.exe											sys\bin\m_ctrl.exe
+data=ZRESOURCE\apps\m_ctrl.rsc												Resource\Apps\m_ctrl.rsc
+data=ZRESOURCE\apps\m_ctrl_loc.rsc											Resource\Apps\m_ctrl_loc.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\m_ctrl_reg.rsc		private\10003a3f\import\apps\m_ctrl_reg.rsc
+
+data=EPOCROOT##epoc32\data\Z\resource\swicertstore.dat						resource\swicertstore.dat
+data=EPOCROOT##epoc32\data\z\apparctest\scr_test.db							apparctest\scr_test.db
+
+
+ECOM_PLUGIN(refnativeplugin.dll,10285BC3.rsc)
+ECOM_PLUGIN(tstapp_embedded.dll,10004c66.rsc)
+
+data=ZSYSTEM\install\TSTAPP_standalone_Stub.sis 							system\install\TSTAPP_standalone_Stub.sis
+data=ZSYSTEM\install\app_CTRL2_stub.sis										system\install\app_CTRL2_stub.sis
+data=ZSYSTEM\install\m_ctrl_v2_Stub.sis										system\install\m_ctrl_v2_Stub.sis
+																			
+data=ZSYSTEM\apparctestsisfiles\app_CTRL2.sis 									apparctest\apparctestsisfiles\app_CTRL2.sis
+data=ZSYSTEM\apparctestsisfiles\EndTaskTestApp.sis 								apparctest\apparctestsisfiles\EndTaskTestApp.sis
+data=ZSYSTEM\apparctestsisfiles\SimpleApparcTestApp.sis							apparctest\apparctestsisfiles\SimpleApparcTestApp.sis
+data=ZSYSTEM\apparctestsisfiles\T_EnvSlots.sis									apparctest\apparctestsisfiles\T_EnvSlots.sis
+data=ZSYSTEM\apparctestsisfiles\t_groupname.sis									apparctest\apparctestsisfiles\t_groupname.sis
+data=ZSYSTEM\apparctestsisfiles\t_winchainChild.sis								apparctest\apparctestsisfiles\t_winchainChild.sis
+data=ZSYSTEM\apparctestsisfiles\t_winchainLaunch.sis							apparctest\apparctestsisfiles\t_winchainLaunch.sis
+data=ZSYSTEM\apparctestsisfiles\TApparcTestApp.sis								apparctest\apparctestsisfiles\TApparcTestApp.sis
+data=ZSYSTEM\apparctestsisfiles\TestTrustedPriorityApp2.sis						apparctest\apparctestsisfiles\TestTrustedPriorityApp2.sis
+data=ZSYSTEM\apparctestsisfiles\TestUnTrustedPriorityApp2.sis					apparctest\apparctestsisfiles\TestUnTrustedPriorityApp2.sis
+data=ZSYSTEM\apparctestsisfiles\TSTAPP_standalone.sis							apparctest\apparctestsisfiles\TSTAPP_standalone.sis
+data=ZSYSTEM\apparctestsisfiles\TStartDocApp_v2.sis								apparctest\apparctestsisfiles\TStartDocApp_v2.sis
+data=ZSYSTEM\apparctestsisfiles\UnProctectedUidApp.sis							apparctest\apparctestsisfiles\UnProctectedUidApp.sis
+data=ZSYSTEM\apparctestsisfiles\tnotifydrivesapp.sis							apparctest\apparctestsisfiles\tnotifydrivesapp.sis
+data=ZSYSTEM\apparctestsisfiles\T_groupname_ver1.sis							apparctest\apparctestsisfiles\T_groupname_ver1.sis
+data=ZSYSTEM\apparctestsisfiles\T_groupname_ver2.sis							apparctest\apparctestsisfiles\T_groupname_ver2.sis
+data=ZSYSTEM\apparctestsisfiles\tlargestackapp.sis								apparctest\apparctestsisfiles\tlargestackapp.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddable_embedded.sis						apparctest\apparctestsisfiles\TAppEmbeddable_embedded.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddable_standalone.sis					apparctest\apparctestsisfiles\TAppEmbeddable_standalone.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddableOnly_v2.sis						apparctest\apparctestsisfiles\TAppEmbeddableOnly_v2.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddableUiNotStandAlone_v2.sis			apparctest\apparctestsisfiles\TAppEmbeddableUiNotStandAlone_v2.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddableUiOrStandAlone_embedded.sis		apparctest\apparctestsisfiles\TAppEmbeddableUiOrStandAlone_embedded.sis
+data=ZSYSTEM\apparctestsisfiles\TAppEmbeddableUiOrStandalone_standalone.sis		apparctest\apparctestsisfiles\TAppEmbeddableUiOrStandalone_standalone.sis
+data=ZSYSTEM\apparctestsisfiles\TAppNotEmbeddable_v2.sis						apparctest\apparctestsisfiles\TAppNotEmbeddable_v2.sis
+data=ZSYSTEM\apparctestsisfiles\TNNApp1.sis										apparctest\apparctestsisfiles\TNNApp1.sis
+data=ZSYSTEM\apparctestsisfiles\serverapp2.sis									apparctest\apparctestsisfiles\serverapp2.sis
+data=ZSYSTEM\apparctestsisfiles\serverapp4.sis									apparctest\apparctestsisfiles\serverapp4.sis
+data=ZSYSTEM\apparctestsisfiles\serverapp6.sis									apparctest\apparctestsisfiles\serverapp6.sis
+data=ZSYSTEM\apparctestsisfiles\serverapp7.sis									apparctest\apparctestsisfiles\serverapp7.sis
+data=ZSYSTEM\apparctestsisfiles\TRApaLsSessionStartAppTestApp_v2.sis			apparctest\apparctestsisfiles\TRApaLsSessionStartAppTestApp_v2.sis
+data=ZSYSTEM\apparctestsisfiles\TestMultipleApps.sis							apparctest\apparctestsisfiles\TestMultipleApps.sis
+//data=ZSYSTEM\apparctestsisfiles\TInvalidApp.sis								apparctest\apparctestsisfiles\TInvalidApp.sis
+data=ZSYSTEM\apparctestsisfiles\m_ctrl_v2.sis									apparctest\apparctestsisfiles\m_ctrl_v2.sis
+data=ZSYSTEM\apparctestsisfiles\openservice1app.sis								apparctest\apparctestsisfiles\openservice1app.sis
+data=ZSYSTEM\apparctestsisfiles\openservice2app.sis								apparctest\apparctestsisfiles\openservice2app.sis
+data=ZSYSTEM\apparctestsisfiles\T_DataPrioritySystem1.sis						apparctest\apparctestsisfiles\T_DataPrioritySystem1.sis
+data=ZSYSTEM\apparctestsisfiles\T_DataPrioritySystem2.sis						apparctest\apparctestsisfiles\T_DataPrioritySystem2.sis
+data=ZSYSTEM\apparctestsisfiles\T_DataPrioritySystem3.sis						apparctest\apparctestsisfiles\T_DataPrioritySystem3.sis
+data=ZSYSTEM\apparctestsisfiles\TCtrlPnlApp.sis									apparctest\apparctestsisfiles\TCtrlPnlApp.sis
+data=ZSYSTEM\apparctestsisfiles\TestTrustedPriorityApp1.sis						apparctest\apparctestsisfiles\TestTrustedPriorityApp1.sis
+data=ZSYSTEM\apparctestsisfiles\TestUnTrustedPriorityApp1.sis					apparctest\apparctestsisfiles\TestUnTrustedPriorityApp1.sis
+data=ZSYSTEM\apparctestsisfiles\tRuleBasedApp1.sis								apparctest\apparctestsisfiles\tRuleBasedApp1.sis
+data=ZSYSTEM\apparctestsisfiles\tRuleBasedApp2.sis								apparctest\apparctestsisfiles\tRuleBasedApp2.sis
+data=ZSYSTEM\apparctestsisfiles\tRuleBasedApp3.sis								apparctest\apparctestsisfiles\tRuleBasedApp3.sis
+data=ZSYSTEM\apparctestsisfiles\tRuleBasedApp4.sis								apparctest\apparctestsisfiles\tRuleBasedApp4.sis
+data=ZSYSTEM\apparctestsisfiles\zerosizedicontestapp.sis						apparctest\apparctestsisfiles\zerosizedicontestapp.sis
+data=ZSYSTEM\apparctestsisfiles\ForceRegApp1.sis								apparctest\apparctestsisfiles\ForceRegApp1.sis
+data=ZSYSTEM\apparctestsisfiles\ForceRegApp2.sis								apparctest\apparctestsisfiles\ForceRegApp2.sis
+data=ZSYSTEM\apparctestsisfiles\ForceRegMultipleApps.sis						apparctest\apparctestsisfiles\ForceRegMultipleApps.sis
+data=ZSYSTEM\apparctestsisfiles\CustomiseDefaultIconApp.sis						apparctest\apparctestsisfiles\CustomiseDefaultIconApp.sis
+data=ZSYSTEM\apparctestsisfiles\TestMultipleAppsDowngrade.sis					apparctest\apparctestsisfiles\TestMultipleAppsDowngrade.sis
+data=ZSYSTEM\apparctestsisfiles\ticoncaptionoverride.sis						apparctest\apparctestsisfiles\ticoncaptionoverride.sis
+
+file=ABI_DIR\BUILD_DIR\ParentProcess.exe				Sys\bin\ParentProcess.exe
+file=ABI_DIR\BUILD_DIR\ChildI.exe						Sys\bin\ChildI.exe
+file=ABI_DIR\BUILD_DIR\ChildII.exe						Sys\bin\ChildII.exe
+file=ABI_DIR\BUILD_DIR\ChildIII.exe						Sys\bin\ChildIII.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ParentProcess_reg.Rsc	private\10003a3f\apps\ParentProcess_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ParentProcess.Rsc				Resource\apps\ParentProcess.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildI_reg.RSC			private\10003a3f\apps\ChildI_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildI.Rsc						Resource\apps\ChildI.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildII_reg.RSC		private\10003a3f\apps\ChildII_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildII.Rsc					Resource\apps\ChildII.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildIII_reg.RSC		private\10003a3f\apps\ChildIII_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildIII.Rsc					Resource\apps\ChildIII.Rsc
+
+data=ABI_DIR\BUILD_DIR\tstapp.doc				System\data\tstapp.doc
+data=ABI_DIR\BUILD_DIR\zero_len.txt				System\data\zero_len.txt	
+data=ABI_DIR\BUILD_DIR\one_byte.txt				System\data\one_byte.txt
+
+
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL
+REM Copy new locale language dlls to ROM SFTB10.1 onwards
+file=ABI_DIR\BUILD_DIR\elocl_lan.002					Sys\bin\elocl_lan.002
+file=ABI_DIR\BUILD_DIR\elocl_lan.004					Sys\bin\elocl_lan.004
+file=ABI_DIR\BUILD_DIR\elocl_lan.005					Sys\bin\elocl_lan.005
+file=ABI_DIR\BUILD_DIR\elocl_lan.032					Sys\bin\elocl_lan.032
+#else
+// These are pre SYMBIAN_DISTINCT_LOCALE_MODEL language locale dlls.Not to be use SFTB10.1 onwards. 
+file=ABI_DIR\BUILD_DIR\ELOCL.01					Sys\bin\ELOCL.01
+file=ABI_DIR\BUILD_DIR\ELOCL.02					Sys\bin\ELOCL.02
+file=ABI_DIR\BUILD_DIR\ELOCL.03					Sys\bin\ELOCL.03
+file=ABI_DIR\BUILD_DIR\ELOCL.04					Sys\bin\ELOCL.04
+file=ABI_DIR\BUILD_DIR\ELOCL.05					Sys\bin\ELOCL.05
+file=ABI_DIR\BUILD_DIR\ELOCL.10					Sys\bin\ELOCL.10
+file=ABI_DIR\BUILD_DIR\ELOCL.32					Sys\bin\ELOCL.32
+#endif
+// This is now included in techview, from initlocale.iby
+//file=ABI_DIR\BUILD_DIR\ELOCL.LOC				Sys\bin\ELOCL.LOC
+
+
+data=EPOCROOT##epoc32\data\Z\Apparctest\Corrupted_reg.rsc									ApparcTest\Corrupted_reg.rsc
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\file1.txt									System\data\Testpath\file1.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\file2.txt									System\data\Testpath\file2.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile1.txt					System\data\Testpath\FilterTests\testfile1.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile2.txt					System\data\Testpath\FilterTests\testfile2.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile3.txt					System\data\Testpath\FilterTests\testfile3.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile4.txt					System\data\Testpath\FilterTests\testfile4.txt
+data=EPOCROOT##epoc32\data\z\system\data\FileWithUnknownMimeType.UnrecognisableExtention	System\data\FileWithUnknownMimeType.UnrecognisableExtention
+data=ABI_DIR\BUILD_DIR\z\system\data\recmime_1.rsc								System\data\recmime_1.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recmime_armv5.dll							System\data\recmime_armv5.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogAppTest.mmr							System\data\TApsRecogAppTest.mmr
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade.rsc								System\data\recupgrade.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade2.rsc							System\data\recupgrade2.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade_armv5_rel.dll					System\data\recupgrade_armv5_rel.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade2_armv5_rel.dll					System\data\recupgrade2_armv5_rel.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogUpgradeTest.upg					System\data\TApsRecogUpgradeTest.upg
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogUpgradeTest.upr					System\data\TApsRecogUpgradeTest.upr
+
+
+data=EPOCROOT##epoc32\data\Z\Apparctest\testforceregistrationapp1_reg.rsc			ApparcTest\testforceregistrationapp1_reg.rsc
+data=EPOCROOT##epoc32\data\Z\Apparctest\testforceregistrationapp1_loc.rsc			ApparcTest\testforceregistrationapp1_loc.rsc
+
+data=EPOCROOTepoc32\data\Z\resource\apps\default_app_icon.m02								resource\apps\default_app_icon.m02
+
+data=EPOCROOTepoc32\data\Z\private\10202be9\1028583d.txt				         private\10202be9\1028583d.txt
+data=EPOCROOTepoc32\data\Z\private\10202be9\10003a3f.txt				         private\10202be9\10003a3f.txt
+
+
+// Change for Control panel Start
+file=ABI_DIR\BUILD_DIR\app_ctrl.exe											Sys\bin\app_ctrl.exe
+file=ABI_DIR\BUILD_DIR\app_ctrl2.exe										Sys\bin\app_ctrl2.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\import\apps\App_CTRL2_reg.Rsc	private\10003a3f\import\apps\App_CTRL2_reg.Rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\App_CTRL2.Rsc						Resource\apps\App_CTRL2.Rsc
+// Change for Control panel End
+
+ECOM_PLUGIN(tforceregapprec.dll, A0001010.rsc)
+
+ECOM_PLUGIN(TLongUrlRecognizer.DLL,10004c4e.rsc)
+ECOM_PLUGIN(TBufferOnlyRec.DLL, 10207f88.rsc)
+
+data=ABI_DIR\BUILD_DIR\z\system\data\TRApaLsSessionStartAppTest.tst						System\data\TRApaLsSessionStartAppTest.tst
+ECOM_PLUGIN(TRApaLsSessionStartAppTestRecognizer.DLL,10000182.rsc)
+
+ECOM_PLUGIN(TAppLaunchChecker.DLL,1020d465.rsc)
+ECOM_PLUGIN(TAppLaunchChecker2.DLL,102722ba.rsc)
+ECOM_PLUGIN(TNonNativeAppLaunchChecker.DLL,A0000B70.rsc)
+
+ECOM_PLUGIN(testrec.dll,102032A5.rsc)
+
+file=ABI_DIR\BUILD_DIR\tssaac.exe                							sys\bin\tssaac.exe
+file=ABI_DIR\BUILD_DIR\tssaac_tapp.exe 										sys\bin\tssaac_tapp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\tssaac_tapp_reg.rsc		private\10003a3f\apps\tssaac_tapp_reg.rsc
+data=ZRESOURCE\apps\tssaac_tapp.rsc 										resource\apps\tssaac_tapp.rsc
+data=ZRESOURCE\apps\tssaac_tapp_loc.rsc 									resource\apps\tssaac_tapp_loc.rsc
+
+ECOM_PLUGIN(TNonNativeRec.DLL, 10207f95.rsc)
+data=EPOCROOTepoc32\data\Z\private\101F289C\gif.nna1	   				private\101F289C\gif.nna1
+data=EPOCROOTepoc32\data\Z\private\101F289C\html.nna2	   				private\101F289C\html.nna2
+data=EPOCROOTepoc32\data\Z\private\101F289C\contact.nna3	   			private\101F289C\contact.nna3
+data=EPOCROOTepoc32\data\Z\private\101F289C\txt.nna4	   				private\101F289C\txt.nna4
+
+data=EPOCROOT##epoc32\data\z\system\data\fl_goo.dm					System\data\fl_goo.dm
+data=EPOCROOT##epoc32\data\z\system\data\jpeg_wes.dm				System\data\jpeg_wes.dm
+data=EPOCROOT##epoc32\data\z\system\data\gif_wallpaper.gif				System\data\gif_wallpaper.gif
+data=EPOCROOT##epoc32\data\z\system\data\propelli.jpg	 				System\data\propelli.jpg
+data=EPOCROOT##epoc32\data\z\system\data\type-r.jpg					System\data\type-r.jpg
+data=EPOCROOT##epoc32\data\z\system\data\sd_goo.dcf	 				System\data\sd_goo.dcf
+
+ECOM_PLUGIN(recmime.DLL, 102822B7.rsc)
+data=EPOCROOTepoc32\data\z\Resource\Plugins\recmime.RSC     			apparctest\dummy.rsc
+
+ECOM_PLUGIN(recupgrade.DLL, recupgrade.rsc)
+
+data=ABI_DIR\DEBUG_DIR\ApparcTestServer.exe							sys\bin\ApparcTestServer.exe
+data=ABI_DIR\DEBUG_DIR\TIconLoaderAndIconArrayForLeaks.dll			sys\bin\TIconLoaderAndIconArrayForLeaks.dll
+
+data=DATAZ_\apparctest\apparctest_run.bat                     		\apparctest_run.bat
+
+data=DATAZ_\apparctest\apparctest_t_ApsScan.script            		\apparctest\apparctest_t_ApsScan.script
+data=DATAZ_\apparctest\apparctest_t_AppList.script            		\apparctest\apparctest_t_AppList.script
+data=DATAZ_\apparctest\apparctest_t_AppListFileUpdate.script            \apparctest\apparctest_t_AppListFileUpdate.script
+data=DATAZ_\apparctest\apparctest_t_AutoMMCReaderOpen.script  		\apparctest\apparctest_t_AutoMMCReaderOpen.script
+data=DATAZ_\apparctest\apparctest_t_Backup.script             		\apparctest\apparctest_t_Backup.script
+data=DATAZ_\apparctest\apparctest_t_Capability1.script        		\apparctest\apparctest_t_Capability1.script
+data=DATAZ_\apparctest\apparctest_t_Capability2.script        		\apparctest\apparctest_t_Capability2.script
+data=DATAZ_\apparctest\apparctest_t_DataTypeMappingWithSid.script  \apparctest\apparctest_t_DataTypeMappingWithSid.script
+data=DATAZ_\apparctest\apparctest_t_Caption.script            		\apparctest\apparctest_t_Caption.script
+data=DATAZ_\apparctest\apparctest_t_Cmdln.script              		\apparctest\apparctest_t_Cmdln.script
+data=DATAZ_\apparctest\apparctest_t_ControlPanelTest.script   		\apparctest\apparctest_t_ControlPanelTest.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceA.script	\apparctest\apparctest_T_DataMappingPersistenceA.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceB.script	\apparctest\apparctest_T_DataMappingPersistenceB.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceC.script	\apparctest\apparctest_T_DataMappingPersistenceC.script
+data=DATAZ_\apparctest\apparctest_t_EndTask.script             		\apparctest\apparctest_t_EndTask.script
+data=DATAZ_\apparctest\apparctest_t_Exe.script                		\apparctest\apparctest_t_Exe.script
+data=DATAZ_\apparctest\apparctest_t_File2.script               		\apparctest\apparctest_t_File2.script
+data=DATAZ_\apparctest\apparctest_t_File3.script               		\apparctest\apparctest_t_File3.script
+data=DATAZ_\apparctest\apparctest_t_Foreground.script         		\apparctest\apparctest_t_Foreground.script
+data=DATAZ_\apparctest\apparctest_t_GroupName.script          		\apparctest\apparctest_t_GroupName.script
+data=DATAZ_\apparctest\apparctest_t_GroupName_ver1.script     		\apparctest\apparctest_t_GroupName_ver1.script
+data=DATAZ_\apparctest\apparctest_t_GroupName_ver2.script     		\apparctest\apparctest_t_GroupName_ver2.script
+data=DATAZ_\apparctest\apparctest_t_Locale.script             		\apparctest\apparctest_t_Locale.script
+data=DATAZ_\apparctest\apparctest_t_Mdr.script                		\apparctest\apparctest_t_Mdr.script
+data=DATAZ_\apparctest\apparctest_t_mimecontentpolicy.script                  \apparctest\apparctest_t_mimecontentpolicy.script
+data=DATAZ_\apparctest\apparctest_t_Mru.script                		\apparctest\apparctest_t_Mru.script
+data=DATAZ_\apparctest\apparctest_t_NonNativeApps.script            \apparctest\apparctest_t_NonNativeApps.script
+data=DATAZ_\apparctest\apparctest_t_Notif.script              		\apparctest\apparctest_t_Notif.script
+data=DATAZ_\apparctest\apparctest_t_OOM.script                		\apparctest\apparctest_t_OOM.script
+data=DATAZ_\apparctest\apparctest_t_Pro.script                		\apparctest\apparctest_t_Pro.script
+data=DATAZ_\apparctest\apparctest_t_Proc.script              		\apparctest\apparctest_t_Proc.script
+data=DATAZ_\apparctest\apparctest_t_RApaLsSession.script      		\apparctest\apparctest_t_RApaLsSession.script
+data=DATAZ_\apparctest\apparctest_t_RuleBasedLaunching.script 		\apparctest\apparctest_t_RuleBasedLaunching.script
+data=DATAZ_\apparctest\apparctest_t_Serv2.script              		\apparctest\apparctest_t_Serv2.script
+data=DATAZ_\apparctest\apparctest_t_Serv3.script              		\apparctest\apparctest_t_Serv3.script
+data=DATAZ_\apparctest\apparctest_t_ServiceRegistry.script    		\apparctest\apparctest_t_ServiceRegistry.script
+data=DATAZ_\apparctest\apparctest_t_Services.script           		\apparctest\apparctest_t_Services.script
+data=DATAZ_\apparctest\apparctest_t_StartApp.script           		\apparctest\apparctest_t_StartApp.script
+data=DATAZ_\apparctest\apparctest_t_StartDoc.script           		\apparctest\apparctest_t_StartDoc.script
+data=DATAZ_\apparctest\apparctest_t_WindowChaining.script     		\apparctest\apparctest_t_WindowChaining.script
+data=DATAZ_\apparctest\apparctest_t_Wgnam.script              		\apparctest\apparctest_t_Wgnam.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupport.script		\apparctest\apparctest_t_IntegritySupport.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupportReboot1.script	\apparctest\apparctest_t_IntegritySupportReboot1.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupportReboot2.script	\apparctest\apparctest_t_IntegritySupportReboot2.script
+data=DATAZ_\apparctest\apparctest_t_largestack.script				\apparctest\apparctest_t_largestack.script
+data=DATAZ_\apparctest\apparctest_t_drivenotification.script			\apparctest\apparctest_t_drivenotification.script
+data=DATAZ_\apparctest\apparctest_t_servicebase.script			\apparctest\apparctest_t_servicebase.script
+data=DATAZ_\apparctest\apparctest_t_RecUpgrade.script			\apparctest\apparctest_t_RecUpgrade.script
+data=DATAZ_\apparctest\apparctest_t_UpdateAppList.script			\apparctest\apparctest_t_UpdateAppList.script
+
+data=DATAZ_\apparctest\apparctest_t_forcereg.script					\apparctest\apparctest_t_forcereg.script
+data=DATAZ_\apparctest\apparctest_t_clientnotif.script				\apparctest\apparctest_t_clientnotif.script
+data=DATAZ_\apparctest\apparctest_t_nonnativetest.script			\apparctest\apparctest_t_nonnativetest.script
+
+REM SysStart Apparc Scripts
+data=DATAZ_\apparctest\apparctest_T_TestStartApp1L.script		\apparctest\apparctest_T_TestStartApp1L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp2L.script		\apparctest\apparctest_T_TestStartApp2L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp3L.script		\apparctest\apparctest_T_TestStartApp3L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp4L.script		\apparctest\apparctest_T_TestStartApp4L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp5L.script		\apparctest\apparctest_T_TestStartApp5L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp6L.script		\apparctest\apparctest_T_TestStartApp6L.script		
+data=DATAZ_\apparctest\apparctest_T_TestGetAllApps.script     		\apparctest\apparctest_T_TestGetAllApps.script     	
+data=DATAZ_\apparctest\apparctest_T_TestInsertDataTypeL.script		\apparctest\apparctest_T_TestInsertDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestAppForDataTypeL.script		\apparctest\apparctest_T_TestAppForDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestDeleteDataTypeL.script		\apparctest\apparctest_T_TestDeleteDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestServiceDiscovery.script		\apparctest\apparctest_T_TestServiceDiscovery.script	
+data=DATAZ_\apparctest\apparctest_T_TestGetAppInfo.script     		\apparctest\apparctest_T_TestGetAppInfo.script     	
+data=DATAZ_\apparctest\apparctest_T_TestAppCount.script     		\apparctest\apparctest_T_TestAppCount.script     	
+data=DATAZ_\apparctest\apparctest_T_TestCreateDoc.script      		\apparctest\apparctest_T_TestCreateDoc.script      	
+data=DATAZ_\apparctest\apparctest_T_TestLocalisedCaptionL.script	\apparctest\apparctest_T_TestLocalisedCaptionL.script
+
+REM End of Application Architecture Framework unit test iby file
+
+patchdata apgrfx.dll @ KMinApplicationStackSize 0xf000
+patchdata apserv.dll @ KApaDrivesToMonitor 4
+#endif
--- a/appfw/apparchitecture/group/backup_registration.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/group/backup_registration.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,10 @@
 <?xml version="1.0" standalone="yes"?>
 
 <!--
- Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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/appfw/apparchitecture/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/inc/APGCLI.H	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/inc/APGCLI.H	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -24,6 +24,12 @@
 #include <badesca.h>
 #include <f32file.h>
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include "apgupdate.h"
+//#include<usif/scr/scr.h>
+#include<usif/scr/appregentries.h>
+#endif
+
 // classes referenced
 class RFile;
 class MArrayFiller;
@@ -65,7 +71,6 @@
 	RPointerArray<CItem> iItems;
 	};
 
-
 /** A session with the application architecture server.
 
 The server provides access to a cached list of the applications on the device. 
@@ -234,6 +239,7 @@
 	IMPORT_C TInt RollbackNonNativeApplicationsUpdates();
 	IMPORT_C TInt GetAppType(TUid& aTypeUid, TUid aAppUid) const;
 	IMPORT_C TInt ForceRegistration(const RPointerArray<TDesC>& aRegFiles);
+	
 private: // Reserved for future use
 	IMPORT_C virtual void RApaLsSession_Reserved1();
 	IMPORT_C virtual void RApaLsSession_Reserved2();
@@ -245,6 +251,12 @@
 	*/
 	IMPORT_C void ForceCommitNonNativeApplicationsUpdatesL(); 
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	IMPORT_C TInt UpdateAppListL(RArray<TApaAppUpdateInfo>& aAppUpdateInfo);
+    IMPORT_C TInt ForceRegistration(const RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo);
+    IMPORT_C TInt UpdatedAppsInfoL(RArray<TApaAppUpdateInfo>& aUpdatedApps);
+#endif
+	
 private:
 	void DoGetAppOwnedFilesL(CDesCArray& aArrayToFill, TUid aAppUid) const;
 	void DoGetAppViewsL(CApaAppViewArray& aArrayToFill, TUid aAppUid) const;
@@ -267,9 +279,17 @@
 	void DoStartAppL(const CApaCommandLine& aCommandLine, TThreadId* aThreadId, TRequestStatus* aRequestStatusForRendezvous);
 	static void GetMainThreadIdL(TThreadId& aThreadId, const RProcess& aProcess);
 	static void DeletePointerToPointerToTAny(TAny* aPointerToPointerToTAny);
+	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	static CBufFlat* CreateRegFilesBufferL(const RPointerArray<TDesC>& aRegFiles);
+#endif
+	
 	static void CleanupOperation(TAny* aAny);
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	CBufFlat* CreateAppUpdateInfoBufferL(RArray<TApaAppUpdateInfo>& aAppUpdateInfo);
+	CBufFlat* CreateForceRegAppInfoBufferL(const RPointerArray<Usif::CApplicationRegistrationData>& aForceRegAppsInfo);	
+#endif
 private: // data
 	friend class CApaLsSessionExtension;
 	CApaLsSessionExtension* iExtension;
--- a/appfw/apparchitecture/inc/apaapp.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/inc/apaapp.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -19,11 +19,6 @@
 #ifndef __APAAPP_H__
 #define __APAAPP_H__
 
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#if !defined(__APAID_PARTNER_H__)
-#include "apaidpartner.h"
-#endif
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <e32std.h>
 #include <e32base.h>
 #include <apadef.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/inc/apgupdate.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,55 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apgupdate.h
+//
+
+#ifndef __APGUPDATE_H__
+#define __APGUPDATE_H__
+
+#include <e32std.h>
+#include <f32file.h>
+#include <s32strm.h>
+
+
+/*
+ * Contains application uid and corresponding action performed by installer.
+ * @publishedAll
+ */
+class TApaAppUpdateInfo
+    {
+public:    
+    /*
+     * Defines actions performed by installers on an application.
+     * @publishedAll
+     */
+    enum TApaAppAction
+        {
+        //Application is installed or upgraded.
+        EAppPresent,
+        //Application is uninstalled.
+        EAppNotPresent,
+        //Application information is changed.
+        EAppInfoChanged
+        };
+    
+public:    
+    IMPORT_C void InternalizeL(RReadStream& aReadStream);
+    IMPORT_C void ExternalizeL(RWriteStream& aWriteStream) const; 
+    IMPORT_C TApaAppUpdateInfo(TUid aAppUid, TApaAppUpdateInfo::TApaAppAction aAction);
+    IMPORT_C TApaAppUpdateInfo();    
+public:
+    TUid iAppUid;
+    TApaAppAction iAction;
+    };
+#endif //__APGUPDATE_H__
--- a/appfw/apparchitecture/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file appfw/apparchitecture/tdata/10003a3f.txt has changed
Binary file appfw/apparchitecture/tdata/1028583d.txt has changed
--- a/appfw/apparchitecture/tdata/Corrupted_reg.RSC	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tdata/Corrupted_reg.RSC	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of 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".
 //
@@ -21,4 +21,4 @@
  @internalComponent - Internal Symbian test code 
 */
 
-kJ!€º<©ÁÚ$ Õ  	        beytfyugjcert    
\ No newline at end of file
+kJ!€º<©ÁÚ$ Õ  	        beytfyugjcert    
Binary file appfw/apparchitecture/tdata/TSTAPPU.DOC has changed
--- a/appfw/apparchitecture/tdata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tdata/mimecontentpolicy/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file appfw/apparchitecture/tdata/scr.db has changed
Binary file appfw/apparchitecture/tdata/scr_test.db has changed
--- a/appfw/apparchitecture/tdatasrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/App_ctrl_loc.RSS	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/App_ctrl_loc.RSS	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -28,7 +28,7 @@
 			{
 			caption="Test icon";
 			number_of_icons=1;
-			icon_file="Z:\\Resource\\Apps\\APP_CTRL.MBM";
+			icon_file="C:\\Resource\\Apps\\APP_CTRL.MBM";
 			}
 		};
 }
--- a/appfw/apparchitecture/tef/SimpleApparcTestApp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/SimpleApparcTestApp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2000-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,14 +36,14 @@
 // Application exe specific resource which is localised to the application
 RESOURCE	SimpleApparcTestApp.rss
 start resource	SimpleApparcTestApp.rss
-targetpath	/resource/apps
+targetpath	/apparctestregfiles
 lang		sc
 end
 
 
 // Application exe registration resource file
 START RESOURCE	SimpleApparcTestApp_Reg.RSS
-TARGETPATH	/private/10003a3f/apps
+TARGETPATH	/apparctestregfiles
 lang		sc
 END
 
--- a/appfw/apparchitecture/tef/TAppEmbeddableOnly_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddableOnly_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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,11 +36,12 @@
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableOnly_reg.rss
-TARGETPATH	/private/10003a3f/apps
+TARGETPATH	/apparctestregfiles
 END
 
 START RESOURCE 	10004c5C.rss
-TARGET 		tappembeddableonly.rsc
+TARGET 			/tappembeddableonly.rsc
+targetpath 		/apparctestregfiles
 END
 
 
--- a/appfw/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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,11 +36,12 @@
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableUiNotStandAlone_reg.rss
-TARGETPATH	/private/10003a3f/apps
+TARGETPATH	/apparctestregfiles
 END
 
 START RESOURCE 	10004c5E.rss
-TARGET 		tappembeddableuinotstandalone.rsc
+TARGET 			/tappembeddableuinotstandalone.rsc
+targetpath 		/apparctestregfiles
 END
 
 LIBRARY       	apparc.lib
--- a/appfw/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_embedded.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_embedded.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -35,7 +35,8 @@
 //SYSTEMINCLUDE 	/epoc32/include/ecom
 
 START RESOURCE 	10004c5D.rss
-TARGET 		tappembeddableuiorstandalone_embedded.rsc
+TARGET 			/tappembeddableuiorstandalone_embedded.rsc
+targetpath 		/apparctestregfiles
 END
 
 
--- a/appfw/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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,7 +37,7 @@
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableUiOrStandAlone_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 LIBRARY euser.lib apparc.lib eikcore.lib cone.lib  //added cone.lib from original?
--- a/appfw/apparchitecture/tef/TAppEmbeddable_embedded.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddable_embedded.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -35,7 +35,9 @@
 
 
 START RESOURCE 	10004c5B.rss
-TARGET 		tappembeddable_embedded.rsc
+// TARGET 		/apparctestregfiles/tappembeddable_embedded.rsc //bpermi
+TARGET 			/tappembeddable_embedded.rsc
+targetpath 		/apparctestregfiles
 END
 
 LIBRARY       	apparc.lib
--- a/appfw/apparchitecture/tef/TAppEmbeddable_standalone.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppEmbeddable_standalone.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -38,7 +38,7 @@
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddable_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 LIBRARY 		euser.lib apparc.lib eikcore.lib cone.lib  
--- a/appfw/apparchitecture/tef/TAppInstall/TestAppInstall.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppInstall/TestAppInstall.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -38,11 +38,11 @@
 
 START RESOURCE	TestAppInstall.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 end
 
 START RESOURCE	TestAppInstall_reg.rss
-TARGETPATH		/apparctest
+TARGETPATH		/apparctestregfiles
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
--- a/appfw/apparchitecture/tef/TAppInstall/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TAppNotEmbeddable_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TAppNotEmbeddable_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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,7 @@
 
 //reg added for Datacaging
 START RESOURCE	TAppNotEmbeddable_reg.rss
-TARGETPATH	/private/10003a3f/apps
+TARGETPATH	/apparctestregfiles
 END
 
 
--- a/appfw/apparchitecture/tef/TApparcTestApp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TApparcTestApp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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,15 +44,15 @@
 
 START RESOURCE  tapparctestapp.rss
 HEADER
-TARGETPATH	/resource/apps
+TARGETPATH	/apparctestregfiles
 END
 
 START RESOURCE	tapparctestapp_reg.rss
-TARGETPATH	/private/10003a3f/import/apps
+TARGETPATH	/apparctestregfiles
 END
 
 START RESOURCE	tapparctestapp_loc.rss
-TARGETPATH	/resource/apps
+TARGETPATH	/apparctestregfiles
 LANG		sc
 END
 
--- a/appfw/apparchitecture/tef/TBufferOnlyRec/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TESTREC/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -42,14 +42,14 @@
 // Registration file
 SOURCEPATH    	.
 START RESOURCE	EndTask_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 // Application resource file
 SOURCEPATH    	.
 START RESOURCE	EndTaskTestApp.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/TEndTaskTestApp/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -38,9 +38,15 @@
 source		APGWGNAM.CPP apgcli.cpp APGPRIV.CPP apgstart.cpp apgrecog.cpp
 source		apgnotif.cpp APSCLI.CPP apgconstdata.cpp
 source		apsecutils.cpp
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+SOURCE			apgupdate.cpp
+#endif
+
 SOURCEPATH	../apparc
 source 		apaid.cpp apastd.cpp
 
+
 USERINCLUDE   	.
 USERINCLUDE		../apgrfx
 USERINCLUDE 	../apserv
@@ -57,9 +63,17 @@
 library sysutil.lib
 #endif
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+library 	scrclient.lib
+#endif
+
 macro 			UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
 
-deffile		TICONFORLEAKS.DEF
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	deffile ticonforleaks.def
+#else
+	deffile ticonforleaks_legacy.def
+#endif
 
 SMPSAFE
 
--- a/appfw/apparchitecture/tef/TMimeRec/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TMimeRec1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TNonNative/TNNApp1.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TNonNative/TNNApp1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -38,7 +38,7 @@
 
 resource  		TNNApp1_reg.rss
 start resource	TNNApp1_reg.rss
-targetpath		/private/10003a3f/apps
+targetpath		/apparctestregfiles
 lang			sc
 end
 
--- a/appfw/apparchitecture/tef/TNonNative/TNNApp2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TNonNative/TNNApp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -32,7 +32,7 @@
 
 resource  		TNNApp2_reg.rss
 start resource	TNNApp2_reg.rss
-targetpath		/private/10003a3f/apps
+targetpath		/apparctestregfiles
 lang			sc
 end
 
--- a/appfw/apparchitecture/tef/TNonNative/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TRApaLsSessionStartAppTestApp_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TRApaLsSessionStartAppTestApp_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -34,7 +34,7 @@
 
 // Application exe registration resource file
 START RESOURCE	TRApaLsSessionStartAppTestApp_reg.rss
-TARGETPATH	/private/10003a3f/apps
+TARGETPATH	/apparctestregfiles
 END
 
 SOURCE        	TRApaLsSessionStartAppTestApp.cpp
--- a/appfw/apparchitecture/tef/TRecUpgrade/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TRecUpgrade_1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TRecUpgrade_2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TSTAPP_standalone.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TSTAPP_standalone.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -44,20 +44,20 @@
 
 //reg added for Datacaging
 START RESOURCE	tstapp_reg.rss
-TARGETPATH		/private/10003a3f/import/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE 	TSTAPP.rss
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 END
 
 START RESOURCE 	tstapp_loc.rss
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 LANG 			SC 01 02 03 04 05
 END
 
 START BITMAP 	tstapp.mbm
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
@@ -66,19 +66,19 @@
 END
 
 START BITMAP 	tstapp02.m02
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 def25.bmp def25m.bmp def25.bmp def25m.bmp def50.bmp def50m.bmp
 END
 
 START BITMAP 	tstappview01.m01
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 def25.bmp def25m.bmp def35.bmp def35m.bmp def50.bmp def50m.bmp
 END
 
 START BITMAP 	tstappview02.k
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
@@ -86,13 +86,13 @@
 END
 
 START BITMAP 	tstappview01.m02
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 def25.bmp def25m.bmp def35.bmp def35m.bmp def50.bmp def50m.bmp
 END
 
 START BITMAP 	tstappview
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
--- a/appfw/apparchitecture/tef/TSidChecker/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/TStartDocApp_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TStartDocApp_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -28,7 +28,7 @@
 SOURCE        TStartDocApp.cpp
 
 START RESOURCE	TStartDocApp_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END   
 
 USERINCLUDE   .
--- a/appfw/apparchitecture/tef/TWindowChaining.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/TWindowChaining.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -44,6 +44,6 @@
 const TInt KQueryChainChild1 = 428;
 const TInt KQueryChainChild2 = 429;
 
-_LIT(KWinChainChildAppFileName, "z:\\sys\\bin\\t_winchainLaunch.exe");
+_LIT(KWinChainChildAppFileName, "c:\\sys\\bin\\t_winchainLaunch.exe");
 #endif // __TWINDOWCHAINING_H__
 
--- a/appfw/apparchitecture/tef/T_AppList.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_AppList.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -23,6 +23,12 @@
 
 #include <apgcli.h>
 #include "T_AppList.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
+
 
 CTestAppListStep::CTestAppListStep()
 	{
@@ -60,6 +66,23 @@
 	TEST(ret==KErrNone);
 	}
 
+TVerdict CTestAppListStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CTestAppListStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KApparcTestAppComponent);
+    
+    return TestStepResult();    
+    }
 
 TVerdict CTestAppListStep::doTestStepL()
 	{
@@ -75,3 +98,5 @@
 	INFO_PRINTF1(_L("Test Finished"));	
 	return TestStepResult();
 	}
+
+
--- a/appfw/apparchitecture/tef/T_AppList.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_AppList.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -38,6 +38,8 @@
 	CTestAppListStep();
 	~CTestAppListStep();
 	void TestAppList(); 
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 private:
 	RTestableApaLsSession iApaLsSession;
--- a/appfw/apparchitecture/tef/T_AppListFileUpdateStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_AppListFileUpdateStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -34,12 +34,13 @@
 
 #include <apgcli.h>
 #include "T_AppListFileUpdateStep.h"
+#include "T_SisFileInstaller.h"
 
-_LIT(KTestAppZPath,"Z:\\ApparcTest\\TestAppInstall_reg.RSC");
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
 _LIT(KAppListFileName,"C:\\private\\10003a3f\\AppsListCache\\AppsList.bin");
 _LIT(KAppTimeFormat,"%:0%H%:1%T%:2%S%:3");
-_LIT(KAppDirectory,"C:\\Private\\10003a3f\\Import\\apps\\");
-_LIT(KTestAppObsolutePath1,"C:\\Private\\10003a3f\\Import\\apps\\TestAppInstall_reg.RSC");
 
 const TInt KMaxTimeCount = 18;			// 18 * 10 is 180 Seconds
 
@@ -128,9 +129,6 @@
  
  void CT_AppListFileUpdateStep::TestTimeStampL()
  	{
-	// Create KAppDirectory
-	TInt err = iUtils.CreateDirectoryL(KAppDirectory);
-	TEST(err == KErrNone || err == KErrAlreadyExists);
 	
 	// Wait until KAppListFileName is present and check that the file has been created indeed
 	TBool present = CheckForFilePresent();
@@ -143,8 +141,11 @@
 		
 	// Install an application
 	INFO_PRINTF1(_L("Install application..."));
-	InstallApplicationL(KTestAppObsolutePath1);
-
+	
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile);
+    
 	// wait 5 seconds for the app to be properly installed
 	User::After(5 * 1000000);
 	
@@ -162,34 +163,10 @@
 
 	// Uninstall & delete...
 	INFO_PRINTF1(_L("Uninstalling application..."));
-	DeleteApplicationL(KTestAppObsolutePath1);
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent);
  	}
  
  
-/*
-Delete a registration resource file (TestAppInstall.rsc) in the path  "C:\private\10003a3f\import\apps" .
-*/
-void CT_AppListFileUpdateStep::DeleteApplicationL(const TDesC& aAppName)
-	{
-	INFO_PRINTF2(_L("Deleting file '%S'"), &aAppName);
-
-	TInt ret = iUtils.SetReadOnly(aAppName, 0);
-	TEST(ret == KErrNone);
-	ret = iUtils.DeleteFileL(aAppName);
-	TEST(ret == KErrNone);
-	}
-
-
-/*
-Copy a registration resource file (TestAppInstall.rsc) in the path  "c:\private\10003a3f\import\apps" .
-*/
-void CT_AppListFileUpdateStep::InstallApplicationL(const TDesC& aAppName)
-	{
-	INFO_PRINTF3(_L("Copying file '%S' to folder '%S'"), &aAppName, &KTestAppZPath);
-
-	TInt ret = iUtils.CopyFileL(KTestAppZPath, aAppName);
-	TEST(ret == KErrNone);
-	}
 
 
 /*
@@ -247,10 +224,13 @@
 	
 	// Do a rescan and check that the file exists again.
 	INFO_PRINTF1(_L("Do a rescan and check that the file exists again...."));
-	RPointerArray<TDesC> dummy;
-	TEST(iSession.ForceRegistration(dummy) == KErrNone);
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile);
+    
 	present = CheckForFilePresent();			
 	TEST(present);
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent);
  	}
 
 
--- a/appfw/apparchitecture/tef/T_AppListFileUpdateStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_AppListFileUpdateStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -40,8 +40,6 @@
 private:
 	void TestTimeStampL();
 	void AppsListModifiedTimeL(TTime &);
-	void DeleteApplicationL(const TDesC&);
-	void InstallApplicationL(const TDesC&);
 	
 private:
 	void TestDeleteAppListFileL();
--- a/appfw/apparchitecture/tef/T_CaptionStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_CaptionStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -57,6 +57,7 @@
 #include "appfwk_test.h"
 #include "ticoncaptionoverride.h" //KUidTestIconCapOverride defined here
 #include "TIconLoaderAndIconArrayForLeaks.h"
+#include "T_SisFileInstaller.h"
 
 
 //
@@ -89,11 +90,21 @@
 // Cenrep configuration details for English language
 _LIT(KCenRepCaption, "CRTstCap UK");
 _LIT(KCenRepShortCaption, "CRTC UK");
-_LIT(KCenRepIconFilename, "Z:\\resource\\apps\\ticoncapoverride.mbm");
+_LIT(KCenRepIconFilename, "C:\\resource\\apps\\ticoncapoverride.mbm");
+
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
+_LIT(KTstAppTiconcaptionoverrideSisFile, "z:\\apparctest\\apparctestsisfiles\\ticoncaptionoverride.sis");
+_LIT(KTstAppTiconcaptionoverrideComponent, "ticoncaptionoverride");
+
+_LIT(KForceRegAppSisFile, "z:\\apparctest\\apparctestsisfiles\\ForceRegApp1.sis");
+_LIT(KForceRegAppComponent, "ForceRegApp1");    
 
 const TUid KUidIconCaptionRepository = {0x1028583d}; // Central Repository UID.
 const TInt KTextSize = 100;
 
+const TInt KDelay = 4000000;
 //
 //
 //		CT_CaptionStep
@@ -104,41 +115,61 @@
 void CT_CaptionStep::ChangeLocaleL(TLanguage aLanguage)
 	{
 #ifdef SYMBIAN_DISTINCT_LOCALE_MODEL 
-    _LIT(KLitLocaleDllNameBase, "elocl_lan");
-    _LIT(KLitLocaleDllNameExtension, ".loc");
+    _LIT(KLitLanguageLocaleDllNameBase, "elocl_lan");
+    //Region and collation code values are hard coded, as the check, after changing the locale is made for the language only.
+    _LIT(KLitRegionLocaleDllNameBase, "elocl_reg.826");        
+    _LIT(KLitCollationLocaleDllNameBase, "elocl_col.001");
+    _LIT(ThreeDigExt,".%03d");
+    TExtendedLocale localeDll;    
+    const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+    TBuf<16> languageLocaleDllName(KLitLanguageLocaleDllNameBase);  
+    languageLocaleDllName.AppendFormat(ThreeDigExt, aLanguage);
+    TBuf<16> regionLocaleDllName(KLitRegionLocaleDllNameBase);  
+    TBuf<16> collationLocaleDllName(KLitCollationLocaleDllNameBase);  
+    // Try to load the locale dll
+    TInt error=localeDll.LoadLocale(languageLocaleDllName, regionLocaleDllName, collationLocaleDllName);
+        
+    if (error==KErrNotFound)
+        {
+        // Locale dll is not found for the asked language. 
+        ERR_PRINTF2(_L("Failed to find the locale dll for %d"), aLanguage);
+        }
+           
+    User::LeaveIfError(error);
+    localeDll.SaveSystemSettings();
 #else
     _LIT(KLitLocaleDllNameBase, "ELOCL");
-    _LIT(KLitLocaleDllNameExtension, ".LOC");
-#endif          
-    RLibrary localeDll;
-    TBuf<16> localeDllName(KLitLocaleDllNameBase);
+    _LIT(TwoDigExt,".%02d");
+    
+    RLibrary localeDll; 
     CleanupClosePushL(localeDll);
+    
     const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
-#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL         
-    _LIT(ThreeDigExt,".%03d");
-    localeDllName.AppendFormat(ThreeDigExt, aLanguage);
-#else
-    _LIT(TwoDigExt,".%02d");
-    localeDllName.AppendFormat(TwoDigExt, aLanguage);
-#endif          
-            
+    TBuf<16> localeDllName(KLitLocaleDllNameBase);  
+    localeDllName.AppendFormat(TwoDigExt, language);
+    
+    // Try to load the locale dll
     TInt error=localeDll.Load(localeDllName, uidType);
     if (error==KErrNotFound)
         {
-        localeDllName=KLitLocaleDllNameBase;
-        localeDllName.Append(KLitLocaleDllNameExtension);
-        error=localeDll.Load(localeDllName, uidType);
+        // Locale dll is not found for the asked language. 
+        ERR_PRINTF2(_L("Failed to find the locale dll for %d"), language);
         }
+    
     User::LeaveIfError(error);
-            
-#ifdef  SYMBIAN_DISTINCT_LOCALE_MODEL
-    TExtendedLocale myExtendedLocale;
-    User::LeaveIfError(myExtendedLocale.LoadLocaleAspect(localeDllName));
-    User::LeaveIfError(myExtendedLocale.SaveSystemSettings());
-#else   
     User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
+    CleanupStack: opAndDestroy(); // localeDll
 #endif
-    CleanupStack::PopAndDestroy(&localeDll);
+    
+    // Check if the device locale has changed
+    if (aLanguage == User::Language())
+        {
+        SetTestStepResult(EPass);
+        }
+    else
+        {
+        ERR_PRINTF3(_L("Failed to change the locale to %d whereas the current locale is"), aLanguage, User::Language());
+        }	
 	}
 
 
@@ -182,12 +213,11 @@
 			};
 
 		// Change the locale
-		ChangeLocaleL(languageToTest);
-		TEST(User::Language() == languageToTest);
-		
-		// Force the applist to be updated (so test app gets new language settings)
-		RPointerArray<TDesC> dummy;
-		User::LeaveIfError(iLs.ForceRegistration(dummy));
+		if(languageToTest != User::Language())
+		    {
+            ChangeLocaleWaitForApplistUpdate(languageToTest);		
+            TEST(User::Language() == languageToTest);
+		    }
 		
 		// Do the same set of tests for each language
 		TestCApaSystemControlListL();
@@ -199,7 +229,9 @@
 		}
 
 	// restore original locale, just in case...
-	ChangeLocaleL(language);
+	if(User::Language() != language)
+	    ChangeLocaleWaitForApplistUpdate(language);
+	
 	TEST(User::Language() == language);
 	}	
 
@@ -408,7 +440,7 @@
 	{
 	INFO_PRINTF1(_L("Testing TApaAppInfo streams... "));
 
-	TApaAppInfo appInfoShort(KUidTestApp, _L("z:\\sys\\bin\\tstapp.exe"), _L("TstCap UK"),_L("TC UK"));
+	TApaAppInfo appInfoShort(KUidTestApp, _L("c:\\sys\\bin\\tstapp.exe"), _L("TstCap UK"),_L("TC UK"));
 	TEST(appInfoShort.iShortCaption.Compare(_L("TC UK"))==0);
 
 	TFileName tempFile=_L("c:\\system\\test\\TC_temp.txt");
@@ -470,8 +502,7 @@
 	TEST(User::Language() == ELangEnglish);
 	
 	// Force the applist to be updated (so test app gets new language settings)
-	RPointerArray<TDesC> dummy;
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+	ForceApplistUpdate();
 
 	// SetAppShortCaption should return KErrNotFound if it could not find the app
 	INFO_PRINTF1(_L(".....setting short caption for an unknown app"));
@@ -509,18 +540,16 @@
 
 	// Check short caption remains updated after a refresh of the applist
 	INFO_PRINTF1(_L(".....checking short caption remains updated after a refresh of the applist"));
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+	ForceApplistUpdate();
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);
 
 	// Check short caption remains updated after a locale change
 	INFO_PRINTF1(_L(".....checking short caption remains updated after a locale change"));
-	ChangeLocaleL(ELangJapanese);
+	ChangeLocaleWaitForApplistUpdate(ELangJapanese);
 	TEST(User::Language() == ELangJapanese);	// Japanese locale exists in epoc32 tree but not defined in test app
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
-	ChangeLocaleL(ELangEnglish);				// back to English to see what happened in between
+    ChangeLocaleWaitForApplistUpdate(ELangEnglish);				// back to English to see what happened in between
 	TEST(User::Language() == ELangEnglish);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);
 
@@ -530,17 +559,15 @@
 	TEST(err == KErrNone);
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// English, the current app language, doesn't change...
-	ChangeLocaleL(ELangFrench);
+	ChangeLocaleWaitForApplistUpdate(ELangFrench);
 	TEST(User::Language() == ELangFrench);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption2);	
 	
 	// Set short caption of an app for a language which the app does not include (ELangAmerican)
 	INFO_PRINTF1(_L(".....setting short caption of an app for a language which the app does not include"));
-	ChangeLocaleL(ELangAmerican);
+	ChangeLocaleWaitForApplistUpdate(ELangAmerican);
 	TEST(User::Language() == ELangAmerican);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	err = iLs.SetAppShortCaption(KShortCaption2, ELangAmerican, KUidTestApp);
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// American takes the default...so English...which has just been updated.
@@ -551,37 +578,31 @@
 	TEST(err == KErrNone);
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// American takes the default...so English...which has just been updated.
-	ChangeLocaleL(ELangEnglish);
+	ChangeLocaleWaitForApplistUpdate(ELangEnglish);
 	TEST(User::Language() == ELangEnglish);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// English set individually ===> not updated by ELangNone
-	ChangeLocaleL(ELangFrench);
+	ChangeLocaleWaitForApplistUpdate(ELangFrench);
 	TEST(User::Language() == ELangFrench);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption2);	// French set individually ===> not updated by ELangNone
-	ChangeLocaleL(ELangGerman);
+	ChangeLocaleWaitForApplistUpdate(ELangGerman);
 	TEST(User::Language() == ELangGerman);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption3);	// German takes the one set by  ELangNone
-	ChangeLocaleL(ELangItalian);
+	ChangeLocaleWaitForApplistUpdate(ELangItalian);
 	TEST(User::Language() == ELangItalian);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption3);	// Italian takes the one set by ELangNone
-	ChangeLocaleL(ELangSpanish);
+	ChangeLocaleWaitForApplistUpdate(ELangSpanish);
 	TEST(User::Language() == ELangSpanish);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption3);	// Spanish takes the one set by ELangNone
 
 	// Set short caption of an app for a language which was set by the previous ELangNone
 	INFO_PRINTF1(_L(".....setting short caption of an app which was set by the previous ELangNone"));
-	ChangeLocaleL(ELangItalian);
+	ChangeLocaleWaitForApplistUpdate(ELangItalian);
 	TEST(User::Language() == ELangItalian);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	err = iLs.SetAppShortCaption(KShortCaption4, ELangItalian, KUidTestApp);
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption4);
@@ -592,35 +613,30 @@
 	TEST(err == KErrNone);
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption4);	// Italian set individually ===> not updated by ELangNone
-	ChangeLocaleL(ELangEnglish);
+	ChangeLocaleWaitForApplistUpdate(ELangEnglish);
 	TEST(User::Language() == ELangEnglish);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// English set individually ===> not updated by ELangNone
-	ChangeLocaleL(ELangFrench);
+	ChangeLocaleWaitForApplistUpdate(ELangFrench);
 	TEST(User::Language() == ELangFrench);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption2);	// French set individually ===> not updated by ELangNone
-	ChangeLocaleL(ELangGerman);
+	ChangeLocaleWaitForApplistUpdate(ELangGerman);
 	TEST(User::Language() == ELangGerman);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption5);	// German takes the one set by  ELangNone
-	ChangeLocaleL(ELangSpanish);
+	ChangeLocaleWaitForApplistUpdate(ELangSpanish);
 	TEST(User::Language() == ELangSpanish);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption5);	// Spanish takes the one set by ELangNone
-	ChangeLocaleL(ELangAmerican);
+	ChangeLocaleWaitForApplistUpdate(ELangAmerican);
 	TEST(User::Language() == ELangAmerican);
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
 	iLs.GetAppInfo(appInfo, KUidTestApp);
 	TEST(appInfo.iShortCaption == KShortCaption1);	// American takes the default...so English...which has just been updated.
 
 	// restore original settings....
 	INFO_PRINTF1(_L(".....restoring original settings"));
-	ChangeLocaleL(language);
+	ChangeLocaleWaitForApplistUpdate(language);
 	TEST(User::Language() == language);
 	// restore original short captions for all langs....(h4 doesn't perform reboots between tests)
 	TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionEnglish, ELangEnglish, KUidTestApp) == KErrNone);
@@ -662,9 +678,11 @@
 	{
 	INFO_PRINTF1(_L("APPFWK-APPARC-0087:TestIconCaptionOverridesL started..."));
 	
-	//Change the system language to English before starting the tests
-	TRAPD(ret,ChangeLocaleL(ELangEnglish));
-	TEST(ret == KErrNone);
+    //Change the system language to English before starting the tests
+    TRAPD(ret,ChangeLocaleL(ELangEnglish));
+    TEST(ret == KErrNone);
+    TEST(User::Language() == ELangEnglish);
+    ForceApplistUpdate();
 				
 	TApaAppInfo appInfo;
 	//Get test app's information
@@ -778,10 +796,8 @@
 	//tests whether the process with WriteDeviceData capability can update the configuration settings.
 	TEST(error == KErrNone);
 	
-	// Force the applist to be updated (so test app gets new language settings)
-	RPointerArray<TDesC> dummy;
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
-	
+	ForceApplistUpdate();
+    
 	TApaAppInfo appInfo;
 	//Get test app's information
 	iLs.GetAppInfo(appInfo, KUidTestIconCapOverride);
@@ -797,8 +813,8 @@
 	//sets the short caption back to the actual for other tests to work
 	error = cenRep->Set(shortCapKey,KCenRepShortCaption);
 	
-	// Force the applist to be updated (so test app gets new language settings)
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+    // Force the applist to be updated (so test app gets new language settings)
+    ForceApplistUpdate();
 	
 	CleanupStack::PopAndDestroy(cenRep); //cenRep object
 	INFO_PRINTF1(_L("APPFWK-APPARC-0089:TestCenRepChangeNotificationL finished..."));
@@ -836,12 +852,12 @@
 	//French
 	_LIT(KCaptionFrench, "CRTstCap FR");
 	_LIT(KShortCaptionFrench, "CRTC FR");
-	_LIT(KIconFilenameFrench, "Z:\\resource\\apps\\svg_icon.svg");
+	_LIT(KIconFilenameFrench, "C:\\resource\\apps\\svg_icon.svg");
 
 	//German
 	_LIT(KCaptionGerman, "TstCap GE");
 	_LIT(KShortCaptionGerman, "TC GE");
-	_LIT(KIconFilenameGerman, "Z:\\resource\\apps\\ticoncapoverride.mbm");
+	_LIT(KIconFilenameGerman, "C:\\resource\\apps\\ticoncapoverride.mbm");
 
 	TApaAppInfo appInfo;
 	RFile file;
@@ -855,9 +871,7 @@
 	
 	TEST(User::Language() == ELangFrench);//check language is set to French.
 	
-	// Force the applist to be updated (so test app gets new language settings)
-	RPointerArray<TDesC> dummy;
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+    ForceApplistUpdate();
 	
 	//Get test app's information
 	iLs.GetAppInfo(appInfo, KUidTestIconCapOverride);
@@ -896,7 +910,7 @@
 	TEST(User::Language() == ELangGerman);//check language is set to German.
 	
 	// Force the applist to be updated (so test app gets new language settings)
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+	ForceApplistUpdate();
 	
 	//Get test app's information
 	iLs.GetAppInfo(appInfo, KUidTestIconCapOverride);
@@ -940,7 +954,7 @@
 	TEST(User::Language() == ELangEnglish);//check language is set to English.
 	
 	// Force the applist to be updated (so test app gets new language settings)
-	User::LeaveIfError(iLs.ForceRegistration(dummy));
+	ForceApplistUpdate();
 	
 	//Get test app's information
 	iLs.GetAppInfo(appInfo, KUidTestIconCapOverride);
@@ -973,7 +987,7 @@
 	INFO_PRINTF2(_L("----Expected icon filename==>%S"), &printString);
 	INFO_PRINTF2(_L("----Retrieved icon filename==>%S"), &fileName);
 	TEST(fileName.Compare(KCenRepIconFilename)==0);
-	
+	file.Close();
 	INFO_PRINTF1(_L("APPFWK-APPARC-0090:TestIconCaptionOverridesWithChangeLangL finished..."));
 	}
 		
@@ -1011,6 +1025,42 @@
 	TestApiPrecedenceOverCenRepConfigInfoL();
 	}
 	
+void CT_CaptionStep::ForceApplistUpdate()
+{
+    // Force the applist to be updated (so test app gets new language settings)
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KForceRegAppSisFile);
+    sisFileInstaller.InstallSisL(KForceRegAppSisFile);
+    sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KForceRegAppComponent); 
+}
+
+void CT_CaptionStep::ChangeLocaleWaitForApplistUpdate(TLanguage aLanguage)
+    {
+    TRequestStatus status;
+    iLs.SetNotify(EFalse, status);
+    ChangeLocaleL(aLanguage);
+    User::WaitForRequest(status);
+    }
+
+TVerdict CT_CaptionStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppTiconcaptionoverrideSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppTiconcaptionoverrideSisFile);
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_CaptionStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KTstAppStandAloneComponent);
+    sisFileInstaller.UninstallSisL(KTstAppTiconcaptionoverrideComponent);
+    return TestStepResult();    
+    }
+
 TVerdict CT_CaptionStep::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Test T_Caption step started....\n"));
@@ -1019,6 +1069,11 @@
 	TEST(iFs.Connect() == KErrNone);
 	TEST(iLs.Connect() == KErrNone);
 
+    // Change the locale
+    ChangeLocaleL(ELangEnglish);
+    TEST(User::Language() == ELangEnglish);
+    ForceApplistUpdate();
+    
 	// run language tests for the test caption
 	TRAPD(r, DoLanguageTestL());
 	TEST(r==KErrNone);
--- a/appfw/apparchitecture/tef/T_CaptionStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_CaptionStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -42,6 +42,8 @@
 public:
 	CT_CaptionStep();
 	~CT_CaptionStep();
+	virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();
 	virtual TVerdict doTestStepL();
 private:
 	void DoLanguageTestL();
@@ -58,6 +60,8 @@
 	void TestCenRepChangeNotificationL();
 	void TestIconCaptionOverridesWithChangeLangL();
 	void TestIconCaptionOverridesMemoryLeaksL();
+	void ForceApplistUpdate();
+	void ChangeLocaleWaitForApplistUpdate(TLanguage aLanguage);
 private:
 	RFs iFs;
 	RTestableApaLsSession iLs;
--- a/appfw/apparchitecture/tef/T_CmdlnStep.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_CmdlnStep.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -24,6 +24,10 @@
 
 #include "T_CmdlnStep.h"
 #include "testableapalssession.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KTEnvSlotsAppSisFile, "z:\\apparctest\\apparctestsisfiles\\T_EnvSlots.sis");
+_LIT(KTEnvSlotsAppComponent, "T_EnvSlots");
 
  /**
    @SYMTestCaseID T-CmdlnStep-testSecureCmdLinesL
@@ -638,6 +642,10 @@
    Override of base class virtual
  */
 	{
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTEnvSlotsAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTEnvSlotsAppSisFile); 
+    
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
@@ -648,6 +656,9 @@
    Override of base class virtual
  */
 	{
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KTEnvSlotsAppComponent); 
+    
 	return TestStepResult();
 	}
 
--- a/appfw/apparchitecture/tef/T_CmdlnStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_CmdlnStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -69,7 +69,7 @@
 _LIT(KTLogFileAccess,"TestLogFile");
 _LIT(KEnvFilePath,"c:\\Logs\\TestExecute\\EnvSlots.txt");
 
-_LIT(KTAppName,"Z:\\sys\\bin\\T_EnvSlots.exe");
+_LIT(KTAppName,"C:\\sys\\bin\\T_EnvSlots.exe");
 _LIT(KTDocName,"C:\\System\\data\\temp.test");
 _LIT(KTempDir,"C:\\System\\data\\");
 _LIT(KTNoDocName,"C:\\Logs\\TestExecute\\NotFound.aaa");
--- a/appfw/apparchitecture/tef/T_ControlPanelTest.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ControlPanelTest.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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,15 +48,16 @@
 #if !defined(__E32TEST_H__)
 #include <e32test.h>
 #endif
+#include "T_SisFileInstaller.h"
 
 _LIT(KCompleted, "Completed.");
 
 
-_LIT(KRSCDIR,"C:\\Resource\\apps\\");
-_LIT(KRSCREGDIR,"C:\\private\\10003a3f\\import\\apps\\");
+_LIT(KCtrlApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\app_CTRL2.sis");
+_LIT(KCtrlApp2Component, "app_CTRL2");
+
 _LIT(KNEWCTLPATH,"C:\\sys\\bin\\app_CTRL2.exe");
-_LIT(KSRCRESOURCEPATH,"Z:\\private\\10003a3f\\import\\apps\\App_CTRL2_reg.Rsc");
-_LIT(KDESTRESOURCEPATH,"C:\\private\\10003a3f\\import\\apps\\App_CTRL2_reg.Rsc");
+
 
 LOCAL_D TInt SimulateKeyL(TAny*)
 	{
@@ -87,17 +88,6 @@
 	return KErrNone;
 	}
 
-void CT_ControlPanelTestStep::RemoveFilesFromCDrive()
-	{
-	TInt ret = iTestServ.SetReadOnly(KDESTRESOURCEPATH,0); //remove READ ONLY option
-	TEST(ret==KErrNone);
-
-	TRAP(ret,iTestServ.DeleteFileL(KDESTRESOURCEPATH));
-	TEST(ret==KErrNone);
-	}
-
-
-
 /**
   Auxiliary Fn for Test Case ID T-ControlPanelStep-testControls1L,
   T-ControlPanelStep-testControls2L, T-ControlPanelStep-testControls3L
@@ -209,15 +199,15 @@
 	{
 	INFO_PRINTF1(_L("In testControls2L......"));	
 	
-	iTestServ.CreateDirectoryL(KRSCDIR);
-	iTestServ.CreateDirectoryL(KRSCREGDIR);
+	INFO_PRINTF1(_L("Application installing to C Drive......"));
 
-	TInt ret=iTestServ.CopyFileL(KSRCRESOURCEPATH,KDESTRESOURCEPATH);
-	TEST(ret==KErrNone);
-	
-	INFO_PRINTF1(_L("Files Copied to C Drive......"));
-	INFO_PRINTF1(_L("Updating the list ......"));
-	iControlCount=iControlList->UpdateCount();
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KCtrlApp2SisFile);
+    sisFileInstaller.InstallSisL(KCtrlApp2SisFile);
+    
+    INFO_PRINTF1(_L("Updating the list ......"));
+    TInt ret;
+    iControlCount=iControlList->UpdateCount();
 	while(iControlList->UpdateCount()<=iControlCount)
 		{
 		TRAP(ret, iControlList->UpdateL());
@@ -238,8 +228,9 @@
 
 	TFileName name=iControlList->Control(iIndex)->FileName();
 	TEST(name.CompareF(KNEWCTLPATH)==0);
-	RemoveFilesFromCDrive();
-	INFO_PRINTF1(_L("Removed the file from C Drive......"));
+	
+	sisFileInstaller.UninstallSisL(KCtrlApp2Component);
+	INFO_PRINTF1(_L("Removed application from C Drive......"));
 	INFO_PRINTF1(_L("Updating the list ......"));
 	iControlCount=iControlList->UpdateCount();
 	while(iControlList->UpdateCount()<=iControlCount)
@@ -449,6 +440,14 @@
 	// connect to the test utils server
 	User::LeaveIfError(iTestServ.Connect());
 	
+	RApaLsSession ls;
+	User::LeaveIfError(ls.Connect());
+	
+	TRequestStatus status;
+	ls.SetNotify(ETrue, status);
+	User::WaitForRequest(status);
+	ls.Close();
+	
 	// Run the tests...w	
 	TRAPD(ret,DoStepTestsInCallbackL())
 	TEST(ret==KErrNone);
--- a/appfw/apparchitecture/tef/T_DataMappingPersistenceA.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataMappingPersistenceA.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -19,7 +19,9 @@
 */
 
 #include "T_DataMappingPersistenceA.h"
+#include "T_SisFileInstaller.h"
 
+_LIT(KServerApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp2.sis");
 
 /**
  * Constructor
@@ -44,7 +46,11 @@
  */	
 TVerdict CT_DataMappingPersistenceATestStep::doTestStepPreambleL()
 	{
-	SetTestStepResult(EPass);
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp2SisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KServerApp2SisFile); 
+
+    SetTestStepResult(EPass);
 	TInt error = iSession.Connect();
 	TEST(error==KErrNone);
 	return TestStepResult();
--- a/appfw/apparchitecture/tef/T_DataMappingPersistenceC.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataMappingPersistenceC.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -20,7 +20,9 @@
 
 
 #include "T_DataMappingPersistenceC.h"
+#include "T_SisFileInstaller.h"
 
+_LIT(KServerApp2Component, "serverapp2");
 
 
 /**
@@ -58,6 +60,9 @@
  */
 TVerdict CT_DataMappingPersistenceCTestStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KServerApp2Component); 
+    
 	return TestStepResult();
 	}
 
--- a/appfw/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -42,11 +42,11 @@
 userinclude		../../../uiftestfw/inc
 
 start resource T_DataPrioritySystem1_reg.rss
-targetpath /private/10003a3f/apps
+targetpath /apparctestregfiles
 end
 
 start resource T_DataPrioritySystem1_loc.rss
-targetpath /resource/apps
+targetpath /apparctestregfiles
 end
 
 LIBRARY		cone.lib   ws32.lib
--- a/appfw/apparchitecture/tef/T_DataPrioritySystem1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -42,11 +42,11 @@
 userinclude		../../../uiftestfw/inc
 
 start resource T_DataPrioritySystem2_reg.rss
-targetpath /private/10003a3f/apps
+targetpath /apparctestregfiles
 end
 
 start resource T_DataPrioritySystem2_loc.rss
-targetpath /resource/apps
+targetpath /apparctestregfiles
 end
 
 LIBRARY		cone.lib   ws32.lib
--- a/appfw/apparchitecture/tef/T_DataPrioritySystem2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/T_DataTypeMappingWithSid1.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataTypeMappingWithSid1.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -28,6 +28,14 @@
 #include "tstapp.h"
 #include "testableapalssession.h"
 #include "appfwk_test.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KTestTrustedPriorityApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\TestTrustedPriorityApp2.sis");
+_LIT(KTestTrustedPriorityApp2Component, "TestTrustedPriorityApp2");
+
+_LIT(KTestUntrustedPriorityApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\TestUnTrustedPriorityApp2.sis");
+_LIT(KTestUntrustedPriorityApp2Component, "TestUnTrustedPriorityApp2");
+
 
 /**
    @SYMTestCaseID		APPFWK-APPARC-0036
@@ -115,6 +123,24 @@
 	{
 	}
 
+TVerdict CT_DataTypeMappingWithSid1::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestUntrustedPriorityApp2SisFile);
+    sisFileInstaller.InstallSisL(KTestUntrustedPriorityApp2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestTrustedPriorityApp2SisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTestTrustedPriorityApp2SisFile);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_DataTypeMappingWithSid1::doTestStepPostambleL()
+    {
+    return TestStepResult();    
+    }
+
+
 TVerdict CT_DataTypeMappingWithSid1::doTestStepL()
     {
 	INFO_PRINTF1(_L("APPFWK-APPARC-0036: DataTypeMappingWithSid1 - Started"));
--- a/appfw/apparchitecture/tef/T_DataTypeMappingWithSid1.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_DataTypeMappingWithSid1.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -39,6 +39,8 @@
 	{
 public:
 	CT_DataTypeMappingWithSid1();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 	void ExecuteL(RApaLsSession& aLs);
 private:
--- a/appfw/apparchitecture/tef/T_EndTaskStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_EndTaskStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -27,6 +27,10 @@
 #include "appfwk_test.h"
 #include "T_EndTaskStep.h"
 #include "TEndTaskTestApp/EndTaskTestAppExternalInterface.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KEndTaskAppSisFile, "z:\\apparctest\\apparctestsisfiles\\EndTaskTestApp.sis");
+_LIT(KEndTaskAppComponent, "EndTaskTestApp");
 
 CTEndTaskStep::CTEndTaskStep()
 	{
@@ -271,6 +275,32 @@
 	return result;
 	}
 
+/**
+ * @return - TVerdict code
+ * Override of base class virtual
+ */ 
+TVerdict CTEndTaskStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KEndTaskAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KEndTaskAppSisFile);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+/**
+ * @return - TVerdict code
+ * Override of base class virtual
+ */
+TVerdict CTEndTaskStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KEndTaskAppComponent);
+    
+    return TestStepResult();
+    }
+
 TVerdict CTEndTaskStep::doTestStepL()
 	{
 	INFO_PRINTF1(_L("TEndTaskStep test started...."));
--- a/appfw/apparchitecture/tef/T_EndTaskStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_EndTaskStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,6 +30,8 @@
 	{
 public:
 	CTEndTaskStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 	void ExecuteL();
 private:
--- a/appfw/apparchitecture/tef/T_EnvSlots/T_EnvSlots.H	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_EnvSlots/T_EnvSlots.H	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -44,7 +44,7 @@
 	
 _LIT(KTLogFileAccess,"TestLogFile");
 _LIT(KFilePath,"c:\\logs\\TestExecute\\EnvSlots.txt");
-_LIT(KTAppName,"Z:\\sys\\bin\\T_EnvSlots.exe");
+_LIT(KTAppName,"C:\\sys\\bin\\T_EnvSlots.exe");
 _LIT(KTDocName,"C:\\System\\data\\temp.test");
 _LIT(KTEnvSlots,"T_EnvSlots");
 
--- a/appfw/apparchitecture/tef/T_EnvSlots/T_EnvSlots.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_EnvSlots/T_EnvSlots.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -40,11 +40,11 @@
 userinclude		../../../uiftestfw/inc
 
 start resource T_EnvSlots_reg.rss
-targetpath /private/10003a3f/apps
+targetpath /apparctestregfiles
 end
 
 start resource T_EnvSlots_loc.rss
-targetpath /resource/apps
+targetpath /apparctestregfiles
 end
 
 LIBRARY		cone.lib   ws32.lib
--- a/appfw/apparchitecture/tef/T_EnvSlots/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/T_Foreground.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_Foreground.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -54,10 +54,15 @@
 #include <eikenv.h>
 
 #include "t_foreground.h"
+#include "T_SisFileInstaller.h"
 
 _LIT(KAppName, "SimpleApparcTestApp");
-_LIT(KAppFileName, "z:\\sys\\bin\\SimpleApparcTestApp.exe");
+_LIT(KAppFileName, "c:\\sys\\bin\\SimpleApparcTestApp.exe");
 _LIT(KAppFile, "c:\\logs\\testApp.txt");
+
+_LIT(KSimpleAppSisFile, "z:\\apparctest\\apparctestsisfiles\\SimpleApparcTestApp.sis");
+_LIT(KSimpleAppComponent, "SimpleApparcTestApp");
+
 const TInt KNonExistantWgId = KErrNotFound;
 
 //
@@ -304,6 +309,25 @@
     }
 
 
+TVerdict CTestForegroundStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile);
+    sisFileInstaller.InstallSisL(KSimpleAppSisFile);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CTestForegroundStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KSimpleAppComponent);
+    
+    return TestStepResult();    
+    }
+
+
 TVerdict CTestForegroundStep::doTestStepL() // main function called by E32
 	{
 	INFO_PRINTF1(_L("Test Started"));
--- a/appfw/apparchitecture/tef/T_Foreground.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_Foreground.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -61,6 +61,8 @@
 public:
 	CTestForegroundStep();
 	~CTestForegroundStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();
 	virtual TVerdict doTestStepL();
 	void ConstructAppL(CCoeEnv* aCoe);
 private:
--- a/appfw/apparchitecture/tef/T_LocaleStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_LocaleStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -35,13 +35,19 @@
 #include <hal.h>
 #include <apgcli.h>
 #include "T_LocaleStep.h"
+#include "T_SisFileInstaller.h"
 
 const TUid KUidTestApp = { 10 }; //uid of tstapp.
 const TUid KUidCustomiseDefaultIconApp = {0x10208181}; // uid of CustomiseDefaultIconApp.
-const TInt KDelayForOnDemand = 20000; //a small delay
+const TInt KDelayForOnDemand = 4000000; //a small delay
 const TInt KDelay = 4000000; // Most apparc tests have 2.5 secs wait time to let apparc update the app-list, but on safer side let us give 4 secs.
 const TInt KViewCount = 3; // Total no of views in tstapp
 
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
+_LIT(KTstCustomiseDefaultIconAppSisFile, "z:\\apparctest\\apparctestsisfiles\\CustomiseDefaultIconApp.sis");
+_LIT(KTstCustomiseDefaultIconAppComponent, "CustomiseDefaultIconApp");
 
 /**
   Auxiliary Fn for Test Case ID T-LocaleStep-TestAllLanguages
@@ -51,7 +57,7 @@
  
 */
 void CT_LocaleStep::ChangeLocaleL(TLanguage aLanguage)
-	{
+	{/*
 #ifdef SYMBIAN_DISTINCT_LOCALE_MODEL 
 	_LIT(KLitLocaleDllNameBase, "elocl_lan");
 	_LIT(KLitLocaleDllNameExtension, ".loc");
@@ -87,7 +93,64 @@
 #else	
 	User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
 #endif
-	CleanupStack::PopAndDestroy(); // localeDll
+	CleanupStack::PopAndDestroy(); // localeDll */
+	
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL 
+    _LIT(KLitLanguageLocaleDllNameBase, "elocl_lan");
+    //Region and collation code values are hard coded, as the check, after changing the locale is made for the language only.
+    _LIT(KLitRegionLocaleDllNameBase, "elocl_reg.826");        
+    _LIT(KLitCollationLocaleDllNameBase, "elocl_col.001");
+    _LIT(ThreeDigExt,".%03d");
+    TExtendedLocale localeDll;    
+    const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+    TBuf<16> languageLocaleDllName(KLitLanguageLocaleDllNameBase);  
+    languageLocaleDllName.AppendFormat(ThreeDigExt, aLanguage);
+    TBuf<16> regionLocaleDllName(KLitRegionLocaleDllNameBase);  
+    TBuf<16> collationLocaleDllName(KLitCollationLocaleDllNameBase);  
+    // Try to load the locale dll
+    TInt error=localeDll.LoadLocale(languageLocaleDllName, regionLocaleDllName, collationLocaleDllName);
+        
+    if (error==KErrNotFound)
+        {
+        // Locale dll is not found for the asked language. 
+        ERR_PRINTF2(_L("Failed to find the locale dll for %d"), aLanguage);
+        }
+           
+    User::LeaveIfError(error);
+    localeDll.SaveSystemSettings();
+#else
+    _LIT(KLitLocaleDllNameBase, "ELOCL");
+    _LIT(TwoDigExt,".%02d");
+    
+    RLibrary localeDll; 
+    CleanupClosePushL(localeDll);
+    
+    const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+    TBuf<16> localeDllName(KLitLocaleDllNameBase);  
+    localeDllName.AppendFormat(TwoDigExt, language);
+    
+    // Try to load the locale dll
+    TInt error=localeDll.Load(localeDllName, uidType);
+    if (error==KErrNotFound)
+        {
+        // Locale dll is not found for the asked language. 
+        ERR_PRINTF2(_L("Failed to find the locale dll for %d"), language);
+        }
+    
+    User::LeaveIfError(error);
+    User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
+    CleanupStack::PopAndDestroy(); // localeDll
+#endif
+    
+    // Check if the device locale has changed
+    if (aLanguage == User::Language())
+        {
+        SetTestStepResult(EPass);
+        }
+    else
+        {
+        ERR_PRINTF3(_L("Failed to change the locale to %d whereas the current locale is"), aLanguage, User::Language());
+        }
 	}
 
 // CheckIcons is a function used in testcase TestLocaleDefaultIconL to check the size of the default icons
@@ -758,6 +821,11 @@
    Override of base class virtual
  */
 	{
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstCustomiseDefaultIconAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstCustomiseDefaultIconAppSisFile);    
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
@@ -768,6 +836,9 @@
    Override of base class virtual
  */
 	{
+	CSisFileInstaller sisFileInstaller;
+	sisFileInstaller.UninstallSisL(KTstAppStandAloneComponent);
+	sisFileInstaller.UninstallSisL(KTstCustomiseDefaultIconAppComponent);	
 	return TestStepResult();
 	}
 
--- a/appfw/apparchitecture/tef/T_NotifStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_NotifStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -42,6 +42,11 @@
 
 #include "appfwk_test_utils.h"
 #include "T_NotifStep.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
 
 _LIT(KImportAppsDir,"c:\\private\\10003a3f\\import\\apps\\");
 _LIT(KResourceAppsDir,"c:\\resource\\apps\\");
@@ -140,9 +145,10 @@
 	{
 	// Force the applist to be updated 
 	//To ensure that server has time to count all applications in the system
-	RPointerArray<TDesC> dummy;
-	User::LeaveIfError(iSession.ForceRegistration(dummy));
-
+    TRequestStatus status;
+    iSession.SetNotify(ETrue, status);
+    User::WaitForRequest(status);
+    
 	TInt theAppCount = 0;
 	TInt theErr1 = iSession.AppCount(theAppCount);
 	TEST(theErr1==KErrNone);
@@ -155,10 +161,12 @@
 	CleanupStack::PushL(notif);
 	obs->iNotifier=notif;	
 	INFO_PRINTF1(_L("Creating and deleting apps for notification"));
-	CreateAppL(_L("AAA"));
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile);
 
 	CActiveScheduler::Start();
-	
+
 	TInt theAppCount1 = 0;
 	theErr1 = iSession.AppCount(theAppCount1);
 	TEST((theAppCount1 - 1) == theAppCount);
@@ -169,13 +177,12 @@
 	CleanupStack::PushL(notif);
 	obs->iNotifier = notif;
 	INFO_PRINTF1(_L("Deleting the application"));
-	DeleteAppL(_L("AAA")); 
-
+	sisFileInstaller.UninstallSisL(KApparcTestAppComponent);
 	CActiveScheduler::Start();
 	
 	CleanupStack::PopAndDestroy(notif);	
-	User::LeaveIfError(iSession.ForceRegistration(dummy));	
 	theErr1 = iSession.AppCount(theAppCount1);
+	
 	TEST(theErr1==KErrNone);
 	TEST(theAppCount1 == theAppCount);
 	
@@ -476,24 +483,33 @@
 	TEST(KErrNone == iSession.Connect());
 	TEST(KErrNone == iUtils.Connect());
 
+    TApaAppInfo info;
+    TUid uid = {0x100048F3};
+    TInt err = iSession.GetAppInfo(info, uid);
+    if(err == KErrNone)
+        {       
+        CSisFileInstaller sisFileInstaller;
+        sisFileInstaller.UninstallSisL(KApparcTestAppComponent);
+        }
+	
 	// run the testcode (inside an alloc heaven harness)	
 	__UHEAP_MARK;
 	iUtils.Connect();
-#if defined (__WINSCW__)
-	INFO_PRINTF1(_L("T-NotifStep-TTestIconFileNotificationL Test Started..."));
-	TRAP(ret,TestIconFileNotificationL());
-	TEST(ret==KErrNone);
-	INFO_PRINTF2(_L("TestIconFileNotificationL() finished with return code '%d'\n"), ret);
-#endif
+//#if defined (__WINSCW__)
+//	INFO_PRINTF1(_L("T-NotifStep-TTestIconFileNotificationL Test Started..."));
+//	TRAP(ret,TestIconFileNotificationL());
+//	TEST(ret==KErrNone);
+//	INFO_PRINTF2(_L("TestIconFileNotificationL() finished with return code '%d'\n"), ret);
+//#endif
 	INFO_PRINTF1(_L("T-NotifStep-TestAppNotificationL Test Started..."));
 	TRAP(ret,TestAppNotificationL());
 	TEST(ret==KErrNone);
 	INFO_PRINTF2(_L("TestAppNotificationL() finished with return code '%d'\n"), ret);
 
-	INFO_PRINTF1(_L("TestForceRegistrationNotificationL Test Started..."));
-	TRAP(ret, TestForceRegistrationNotificationL());
-	TEST(ret==KErrNone);	
-	INFO_PRINTF2(_L("TestForceRegistrationNotificationL() finished with return code '%d'\n"), ret);
+//	INFO_PRINTF1(_L("TestForceRegistrationNotificationL Test Started..."));
+//	TRAP(ret, TestForceRegistrationNotificationL());
+//	TEST(ret==KErrNone);	
+//	INFO_PRINTF2(_L("TestForceRegistrationNotificationL() finished with return code '%d'\n"), ret);
 	iUtils.Close();	
 	__UHEAP_MARKEND;
 	
--- a/appfw/apparchitecture/tef/T_ProStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ProStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -50,6 +50,14 @@
 #if !defined(__E32TEST_H__)
 #include <e32test.h>
 #endif
+#include "T_SisFileInstaller.h"
+
+_LIT(KMCtrlAppV2SisFile, "z:\\apparctest\\apparctestsisfiles\\m_ctrl_v2.sis");
+_LIT(KMCtrlAppV2Component, "m_ctrl_v2");
+
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
 
 TInt PanicTestThread(TAny* aOption);
 
@@ -61,16 +69,9 @@
 	ELast
 	};
 
-
-_LIT(KCTLDIR,"C:\\private\\10003a3f\\import\\apps\\");
-_LIT(KSOURCEPATH,"z:\\private\\10003a3f\\import\\apps\\m_ctrl_reg.rsc");
-_LIT(KNEWCTLPATH,"C:\\private\\10003a3f\\import\\apps\\m_ctrl_reg.rsc");
 _LIT(KNEWPATH,"C:\\cm.txt");
 _LIT(KEMPTYFILEPATH,"z:\\system\\data\\Testpath\\FilterTests\\testfile1.txt");
 
-_LIT(KRSCDIR,"C:\\Resource\\apps\\");
-_LIT(KLOCPATH,"z:\\Resource\\apps\\M_ctrl_loc.rsc");
-_LIT(KNEWLOCPATH,"C:\\Resource\\apps\\M_ctrl_loc.rsc");
 _LIT(KCTRLNAME,"C:\\sys\\bin\\m_ctrl.exe");
 TFileName ctlPath=_L("z:\\sys\\bin\\m_ctrl.exe");
 
@@ -1015,14 +1016,10 @@
 	RSmlTestUtils testSession;
 	User::LeaveIfError(testSession.Connect());
 
-	testSession.CreateDirectoryL(KCTLDIR);
-	testSession.CreateDirectoryL(KRSCDIR);
-
-	TInt ret=testSession.CopyFileL(KSOURCEPATH,KNEWCTLPATH);
-	TEST(ret==KErrNone);
-	ret=testSession.CopyFileL(KLOCPATH,KNEWLOCPATH);
-	TEST(ret==KErrNone);
-
+	CSisFileInstaller sisFileInstaller;
+	INFO_PRINTF2(_L("Installing sis file from -> %S"), &KMCtrlAppV2SisFile);
+	sisFileInstaller.InstallSisL(KMCtrlAppV2SisFile);
+	TInt ret;
 	TInt controlCount=iControlList->UpdateCount();
 	while(iControlList->UpdateCount()<=controlCount)
 		{
@@ -1048,11 +1045,8 @@
 		}
 	
 	// hide the control and do an update - there should be changes
-	testSession.SetReadOnly(KNEWCTLPATH,0);  // remove the read only attribute
-	ret=testSession.DeleteFileL(KNEWCTLPATH);
-	TEST(ret==KErrNone);
-	testSession.SetReadOnly(KNEWLOCPATH,0);  // remove the read only attribute
-	ret=testSession.DeleteFileL(KNEWLOCPATH);
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KMCtrlAppV2Component);
+	
 	TEST(ret==KErrNone);
 	controlCount=iControlList->UpdateCount();
 	while(iControlList->UpdateCount()<=controlCount)
@@ -1145,6 +1139,13 @@
 	{
 	INFO_PRINTF1(_L("Testing CApaSystemControlList"));
 
+	RApaLsSession ls;
+	User::LeaveIfError(ls.Connect());
+	
+	TRequestStatus status;
+	ls.SetNotify(ETrue, status);
+	User::WaitForRequest(status);
+	
 	//Create a session with F & B server
 	TInt ret = RFbsSession::Connect();
 	TEST(ret == KErrNone);
@@ -1300,38 +1301,29 @@
  */
 void CT_ProStep::DoAppListInvalidTestL(RApaLsSession& aLs)
 	{
-	_LIT(KTempAppDir, "C:\\private\\10003a3f\\import\\apps\\");
-	_LIT(KTempRegPath, "C:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc");
+
 	TFullName regPath=_L("z:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc");
 	
 	CFileMan* fileMan = CFileMan::NewL (iFs);
 	CleanupStack::PushL(fileMan);
 	
 	INFO_PRINTF1(_L("Copy tstapp files to C: drive......."));
-	TInt ret = iFs.MkDirAll(KTempAppDir);
-	TEST(ret==KErrNone || ret==KErrAlreadyExists);
-	TEST(fileMan->Copy(regPath, KTempRegPath)==KErrNone);	//Just to start the idle update.
 
-	User::After(8000000);
+	CSisFileInstaller sisFileInstaller;
+	INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+	sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
 	
 	INFO_PRINTF1(_L("Get app list......."));
+	TInt ret;
 	ret = aLs.GetAllApps();
 	TEST(ret==KErrNone);
 
 	INFO_PRINTF1(_L("Remove temp files from C: drive......."));
-	TRequestStatus status;
-	TTime tempTime(0); // added tempTime to avoid asynch CFileMan::Attribs request completing with KErrArgument
-	TInt err=fileMan->Attribs(KTempAppDir,0,KEntryAttReadOnly, tempTime, CFileMan::ERecurse, status);
-	TEST(err==KErrNone);
-	User::WaitForRequest(status);
-	TEST(status.Int() == KErrNone);
-	TEST(fileMan->Delete(KTempRegPath)==KErrNone);	//Just to start the idle update.
-	TEST(fileMan->RmDir(KTempAppDir)==KErrNone);
 
-	User::After(8000000);
-	
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTstAppStandAloneComponent);
 	INFO_PRINTF1(_L("Testing GetNextApp() never returns RApaLsSession::EAppListInvalid."));
 	TApaAppInfo info;
+	
 	while(ret==KErrNone)
 		{
 		ret=aLs.GetNextApp(info);
@@ -1535,7 +1527,7 @@
 
 	iFs.Connect();
 	setup();
-
+	
 	TRAPD(ret,DoStepTestsInCallbackL())
 	TEST(ret==KErrNone);
 
--- a/appfw/apparchitecture/tef/T_ProcStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ProcStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -22,6 +22,9 @@
 */
 
 #include "T_ProcStep.h"
+#include "T_SisFileInstaller.h" 
+
+
 const TInt KTProcTerminatingChildI = 1246;
 const TInt KTProcTerminatingChildII = 1247;
 const TInt KTProcTerminatingChildIII = 1248;
@@ -1376,6 +1379,18 @@
 	INFO_PRINTF1(_L("End - testIdNotAvailableToChildL ----------- \n"));
 	}
 
+
+TVerdict CT_ProcStep::doTestStepPreambleL()
+    {
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_ProcStep::doTestStepPostambleL()
+    {
+    return TestStepResult();    
+    }
+
 TVerdict CT_ProcStep::doTestStepL()
 /**
    @return - TVerdict code
--- a/appfw/apparchitecture/tef/T_ProcStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ProcStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -37,6 +37,7 @@
 _LIT8(KTResultFail, "FAIL");
 
 
+
 //!  A CT_ProcStep test class.
 
 /**  Checks for child process existence when its parent terminates. */
@@ -46,6 +47,8 @@
 public:
 	CT_ProcStep();
 	~CT_ProcStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 private:
 	void testChildExistsL(void);
--- a/appfw/apparchitecture/tef/T_RApaLsSessionStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_RApaLsSessionStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -61,8 +61,60 @@
 #if !defined(__E32TEST_H__)
 #include <e32test.h>
 #endif
+#include "T_SisFileInstaller.h"
 
-// Literals & Constants
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
+_LIT(KZeroSizeIconAppSisFile, "z:\\apparctest\\apparctestsisfiles\\zerosizedicontestapp.sis");
+_LIT(KZeroSizeIconAppComponent, "zerosizedicontestapp");
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
+_LIT(KGroupNameTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\t_groupname.sis");
+_LIT(KGroupNameTestAppComponent, "T_groupname");
+
+_LIT(KAppNotEmbeddableSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppNotEmbeddable_v2.sis");
+_LIT(KAppNotEmbeddableComponent, "TAppNotEmbeddable_v2");
+
+_LIT(KAppEmbeddableOnlySisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableOnly_v2.sis");
+_LIT(KAppEmbeddableOnlyComponent, "TAppEmbeddableOnly_v2");
+
+_LIT(KAppEmbeddableStandaloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddable_standalone.sis");
+_LIT(KAppEmbeddableStandaloneComponent, "TAppEmbeddable_standalone");
+
+_LIT(KAppEmbeddableEmbeddedSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddable_embedded.sis");
+_LIT(KAppEmbeddableEmbeddedComponent, "TAppEmbeddable_embedded");
+
+_LIT(KAppEmbeddableUiNotStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiNotStandAlone_v2.sis");
+_LIT(KAppEmbeddableUiNotStandAloneComponent, "TAppEmbeddableUiNotStandAlone_v2");
+
+_LIT(KAppEmbeddableUiOrStandAloneEmbeddedSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiOrStandAlone_embedded.sis");
+_LIT(KAppEmbeddableUiOrStandAloneEmbeddedComponent, "TAppEmbeddableUiOrStandAlone_embedded");
+
+_LIT(KAppEmbeddableUiOrStandAloneStandaloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiOrStandalone_standalone.sis");
+_LIT(KAppEmbeddableUiOrStandAloneStandaloneComponent, "TAppEmbeddableUiOrStandalone_standalone");
+
+_LIT(KSimpleAppSisFile, "z:\\apparctest\\apparctestsisfiles\\SimpleApparcTestApp.sis");
+_LIT(KSimpleAppComponent, "SimpleApparcTestApp");
+
+_LIT(KWinChainAppSisFile, "z:\\apparctest\\apparctestsisfiles\\t_winchainLaunch.sis");
+_LIT(KWinChainAppComponent, "t_winchainLaunch");
+
+_LIT(KServerApp7SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp7.sis");
+_LIT(KServerApp7Component, "serverapp7");
+
+_LIT(KTestTrustedPriorityApp1SisFile, "z:\\apparctest\\apparctestsisfiles\\TestTrustedPriorityApp1.sis");
+_LIT(KTestTrustedPriorityApp1Component, "TestTrustedPriorityApp1");
+
+_LIT(KTestUnTrustedPriorityApp1SisFile, "z:\\apparctest\\apparctestsisfiles\\TestUnTrustedPriorityApp1.sis");
+_LIT(KTestUnTrustedPriorityApp1Component, "TestUnTrustedPriorityApp1");
+
+_LIT(KTestTrustedPriorityApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\TestTrustedPriorityApp2.sis");
+_LIT(KTestTrustedPriorityApp2Component, "TestTrustedPriorityApp2");
+
+// Literals & Constants 
 _LIT(KCompleted, "Completed.");
 const TUint KBytesToRead=100;
 
@@ -496,35 +548,19 @@
 	{
 	INFO_PRINTF1(_L("Setting up Applist invalid test."));
 	
-	_LIT(KTempAppDir, "C:\\private\\10003a3f\\import\\apps\\");
-	_LIT(KTempRegPath, "C:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc");
-	TFullName regPath=_L("z:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc");
-	
-	CFileMan* iAppListInvalidTestFileMan = CFileMan::NewL (iFs);
-	CleanupStack::PushL(iAppListInvalidTestFileMan);
-	
-	INFO_PRINTF1(_L("Copy tstapp files to C: drive......."));
-	TInt rtn=iFs.MkDirAll(KTempAppDir);
-	TEST(rtn==KErrNone||rtn==KErrAlreadyExists); 
-	TEST(iAppListInvalidTestFileMan->Copy(regPath, KTempRegPath)==KErrNone);	//Just to start the idle update.
+    TRequestStatus status;
+    iLs.SetNotify(EFalse,status);
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+    sisFileInstaller.InstallSisL(KTstAppStandAloneSisFile);
 
 	INFO_PRINTF1(_L("Get app list......."));
 	TInt ret = iLs.GetAllApps();
 	TEST(ret==KErrNone);
-
-	INFO_PRINTF1(_L("Remove temp files from C: drive......."));
-	TRequestStatus status;
-	TTime tempTime(0); // added tempTime to avoid asynch CFileMan::Attribs request completing with KErrArgument
-	TEST(iAppListInvalidTestFileMan->Attribs(KTempAppDir,0,KEntryAttReadOnly, tempTime, CFileMan::ERecurse, status)==KErrNone);
 	
 	User::WaitForRequest(status);
-	TEST(status.Int() == KErrNone);
-	INFO_PRINTF1(_L("Deleting Reg file......."));
-	TEST(iAppListInvalidTestFileMan->Delete(KTempRegPath)==KErrNone);	//Just to start the idle update.
-	INFO_PRINTF1(_L("Removing App dir......."));
-	TEST(iAppListInvalidTestFileMan->RmDir(KTempAppDir)==KErrNone);
-	CleanupStack::PopAndDestroy(iAppListInvalidTestFileMan);
 
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTstAppStandAloneComponent);
 	INFO_PRINTF1(KCompleted);
 	}
 
@@ -1746,12 +1782,13 @@
 
 	HBufC* fullIconFileName = NULL;
 	ret = iLs.GetAppViewIcon(TUid::Uid(KGroupNameApp), viewInfo.iUid, fullIconFileName);
-	TEST(ret == KErrNone);
-	TEST(fullIconFileName != NULL);
-	INFO_PRINTF2(_L("The View icon's UID is - %X"), viewInfo.iUid);
-	TEST(!fullIconFileName->Compare(_L("file://c/resource/apps/tcheckiconapp.xyz")));
-	INFO_PRINTF2(_L("View's icon file name is - %S"), fullIconFileName);
-	
+
+    TEST(ret == KErrNone);
+    TEST(fullIconFileName != NULL);
+    INFO_PRINTF2(_L("The View icon's UID is - %X"), viewInfo.iUid);
+    TEST(!fullIconFileName->Compare(_L("file://c/resource/apps/tcheckiconapp.xyz")));
+    INFO_PRINTF2(_L("View's icon file name is - %S"), fullIconFileName);
+
 	delete fullIconFileName;		
 	CleanupStack::PopAndDestroy(appViews);
 	
@@ -1827,7 +1864,7 @@
 	TInt err = iLs.GetAppIcon(TUid::Uid(KApparcTestApp), svgIconFile);
 	TEST(err == KErrNone);
 	
-	_LIT(KSVGIconFileName, "z:\\resource\\apps\\svg_icon.svg");
+	_LIT(KSVGIconFileName, "c:\\resource\\apps\\svg_icon.svg");
 	//Get the name of the icon file 
 	TBuf<KMaxFileName> svgIconFileName;	
 	svgIconFile.FullName(svgIconFileName);
@@ -1895,27 +1932,15 @@
  */
 void CT_RApaLsSessionTestStep::TestAppListInstallationL()
  	{ 
- 	_LIT(KTestAppDestDir, "C:\\private\\10003a3f\\import\\apps\\" );
- 	_LIT(KTestAppSource, "Z:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc" );
- 	_LIT(KTestAppDest, "C:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc" );
-
- 	_LIT(KTestWaitingForApplistUpdate,"Waiting %d microseconds for applist to be updated");
- 	const TInt KApplistUpdateTime = 10000000;
 
  	// Copy App files around and delete them to check whether 
 	// the app list updates and stores the cache correctly.
- 	RFs	theFS;
- 	theFS.Connect();
- 
- 	// Remove Test app from the file system
- 	CFileMan* fileManager = CFileMan::NewL (theFS);
- 
- 	INFO_PRINTF1(_L("Copying the app to C"));
- 	TEST(KErrNone == fileManager->Copy (KTestAppSource, KTestAppDest, CFileMan::ERecurse));
  	
- 	INFO_PRINTF2(KTestWaitingForApplistUpdate, KApplistUpdateTime);
- 	User::After(KApplistUpdateTime);
- 
+    INFO_PRINTF1(_L("Installing the app from C"));
+ 	CSisFileInstaller sisInstaller;
+ 	INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+ 	sisInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
+ 	
  	TApaAppInfo aInfo;
  	TEST(KErrNone == iLs.GetAppInfo (aInfo, KUidTestApp));
 
@@ -1925,18 +1950,8 @@
 	TEST(parse.Drive ().CompareF (KCdrive) == 0);
  
  	INFO_PRINTF1(_L("Removing the app from C"));
-	TRequestStatus status;
-	TTime tempTime(0); // added tempTime to avoid asynch CFileMan::Attribs request completing with KErrArgument
-	TEST(fileManager->Attribs(KTestAppDest,0,KEntryAttReadOnly, tempTime, CFileMan::ERecurse, status)==KErrNone);
-	User::WaitForRequest(status);
-	TEST(status.Int() == KErrNone);
- 	TEST(KErrNone == fileManager->Delete (KTestAppDest, CFileMan::ERecurse));
-	INFO_PRINTF1(_L("Removing the app dir from C"));
-	TEST(fileManager->RmDir(KTestAppDestDir)==KErrNone);
- 	
-	INFO_PRINTF2(KTestWaitingForApplistUpdate, KApplistUpdateTime);
-	User::After(KApplistUpdateTime);
- 
+	sisInstaller.UninstallSisAndWaitForAppListUpdateL(KTstAppStandAloneComponent);
+	
  	// That should put the file in the right place
  	TEST(KErrNone == iLs.GetAppInfo( aInfo, KUidTestApp));
 
@@ -1945,12 +1960,10 @@
 	INFO_PRINTF1(_L("Comparing App drive location is Z:... "));
  	TEST((parse1.Drive().CompareF(KZdrive)) == 0);
 
- 	delete fileManager;
- 	theFS.Close();
-
  	INFO_PRINTF1(_L("Test TestAppListInstallationL completed"));
  	}
  	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
    @SYMTestCaseID T-RApaLsSessionTestStep-TestAppListInstallation1L
   
@@ -2039,6 +2052,7 @@
 
  	INFO_PRINTF1(_L("Test TestAppListInstallation1L completed"));
  	} 	
+#endif
 
 	/**
    @SYMTestCaseID APPFWK-APPARC-0107
@@ -2063,18 +2077,6 @@
     
     INFO_PRINTF1(_L("Test TestZeroSizedIconFileL Started.........."));
     
-    _LIT(KTestAppDestDir, "C:\\private\\10003a3f\\import\\apps\\" );
-    _LIT(KTestAppResourceDir, "C:\\resource\\apps\\" );
-    
-    _LIT(KTestAppSource, "Z:\\apparctest\\zerosizedicon_reg.rsc" );
-    _LIT(KTestAppDest, "C:\\private\\10003a3f\\import\\apps\\zerosizedicon_reg.rsc" );
-    
-    _LIT(KTestMbmSource, "Z:\\resource\\apps\\zerosizedicon.mbm");
-    _LIT(KTestMbmDest, "C:\\resource\\apps\\zerosizedicon.mbm");
-    
-    _LIT(KTestLocSource, "Z:\\apparctest\\zerosizedicon_loc.rsc");
-    _LIT(KTestLocDest, "C:\\resource\\apps\\zerosizedicon_loc.rsc");
-   
     TRequestStatus appScanCompleted=KRequestPending; 
     iLs.SetNotify(EFalse,appScanCompleted); 
     
@@ -2082,33 +2084,17 @@
     CleanupClosePushL(utils);
     TEST(KErrNone == utils.Connect());
   
-    INFO_PRINTF1(_L("Creating directory C:\\private\\10003a3f\\import\\apps\\ folder"));
-    TInt err=utils.CreateDirectoryL(KTestAppDestDir);
-    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
-
-    INFO_PRINTF1(_L("Creating directory C:\\resource\\apps\\ folder"));
-    err=utils.CreateDirectoryL(KTestAppResourceDir);
-    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
-
-    INFO_PRINTF1(_L("Copying _reg.rsc to C:\\private\\10003a3f\\import\\apps\\ folder"));    
-    User::LeaveIfError(utils.CopyFileL(KTestAppSource,KTestAppDest));
-    INFO_PRINTF1(_L("Copying the mbm and _loc.rsc to C:\\resource\\apps\\ folder"));
-    User::LeaveIfError(utils.CopyFileL(KTestMbmSource,KTestMbmDest));
-    User::LeaveIfError(utils.CopyFileL(KTestLocSource,KTestLocDest));
-
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KZeroSizeIconAppSisFile);
+    sisFileInstaller.InstallSisL(KZeroSizeIconAppSisFile);
+    
     User::WaitForRequest(appScanCompleted);
     TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);
 
 	appScanCompleted=KRequestPending;
 	iLs.SetNotify(EFalse,appScanCompleted);
-    INFO_PRINTF1(_L("Removing _reg.rsc from C:\\private\\10003a3f\\import\\apps\\ folder"));
-    TEST(KErrNone == DeleteFileL(utils, KTestAppDest));
-    INFO_PRINTF1(_L("Removing the mbm and _loc.rsc from C:\\resource\\apps\\ folder"));
-    TEST(KErrNone == DeleteFileL(utils, KTestMbmDest));
-    TEST(KErrNone == DeleteFileL(utils, KTestLocDest));
-    INFO_PRINTF1(_L("Removing the C:\\private\\10003a3f\\import\\apps\\ dir "));
-    TEST(KErrNone == utils.DeleteDirectoryL(KTestAppDestDir));
-  
+
+	sisFileInstaller.UninstallSisL(KZeroSizeIconAppComponent);
 	User::WaitForRequest(appScanCompleted);
     CleanupStack::PopAndDestroy(&utils);//utils
     INFO_PRINTF1(_L("Test TestZeroSizedIconFileL completed"));
@@ -2137,7 +2123,8 @@
     return(err);
 }
 
-	
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
    @SYMTestCaseID T-RApaLsSessionTestStep-TestAppFolderNonRomDrivesL
   
@@ -2213,7 +2200,8 @@
 
  	INFO_PRINTF1(_L("Test scanning of app folder for non-ROM drives completed"));
  	}
- 	
+#endif
+
 /**
    @SYMTestCaseID T-RApaLsSessionTestStep-DoNumDefIconsTestL
   
@@ -2445,7 +2433,7 @@
 void CT_RApaLsSessionTestStep::TestDataPriorityForUnTrustedApps()
 	{
 	INFO_PRINTF1(_L("TestDataPriorityForUnTrustedApps about to start..."));
-	const TUid KUidUnTrustedApp = {0x10207f8C};
+	const TUid KUidUnTrustedApp = {0x80207f8C};
 	const TUid KUidTrustedApp = {0x10207f8D};
 	TInt ret;
 	TBool insertVal = EFalse;
@@ -2527,24 +2515,29 @@
 	bufferAllocator->Create(TSize(200,1), EColor16M);
 	CleanupStack::PopAndDestroy(bufferAllocator);
 
-	
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListInvalidL(), iLs.ClearAppInfoArray() );
+    TRequestStatus status;
+    iLs.SetNotify(ETrue, status);
+    User::WaitForRequest(status);
+    
+	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInvalidL(), iLs.ClearAppInfoArray() );
 	//DONT_CHECK due to file system changes
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallationL(), NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallation1L(), NO_CLEANUP);
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+    HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallation1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppFolderNonRomDrivesL(), NO_CLEANUP);
+#endif	
     HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestZeroSizedIconFileL(), NO_CLEANUP);
     HEAP_TEST_LS_SESSION(iLs, 0, 0, IconLoadingTestCasesL(), NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, AppInfoTestCasesL(), iLs.ClearAppInfoArray(); NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, EmbeddedAppsTestCases(), iLs.ClearAppInfoArray() );
+	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, AppInfoTestCasesL(), iLs.ClearAppInfoArray(); NO_CLEANUP);
+	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, EmbeddedAppsTestCases(), iLs.ClearAppInfoArray() );
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, DoNumDefIconsTestL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestMatchesSecurityPolicy(), NO_CLEANUP);
 	//DONT_CHECK since there's a new typestore
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestNotifyOnDataMappingChangeL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataBufferOnlyL(), iLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataPassedByBufferL(), iLs.FlushRecognitionCache() );
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataL(), iLs.FlushRecognitionCache() );
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedApps(), NO_CLEANUP);
+	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListRecognizeDataL(), iLs.FlushRecognitionCache() );
+	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestDataPriorityForUnTrustedApps(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedAppsRegFile(), NO_CLEANUP);
 	TestIconLoaderAndIconArrayMemoryLeaksL();
 	}
@@ -2586,16 +2579,65 @@
  */
 TVerdict CT_RApaLsSessionTestStep::doTestStepPreambleL()
 	{
+    CSisFileInstaller sisFIleInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFIleInstaller.InstallSisL(KApparcTestAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KGroupNameTestAppSisFile);
+    sisFIleInstaller.InstallSisL(KGroupNameTestAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppNotEmbeddableSisFile);
+    sisFIleInstaller.InstallSisL(KAppNotEmbeddableSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableOnlySisFile);
+    sisFIleInstaller.InstallSisL(KAppEmbeddableOnlySisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableStandaloneSisFile);
+    sisFIleInstaller.InstallSisL(KAppEmbeddableStandaloneSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableEmbeddedSisFile);
+    sisFIleInstaller.InstallSisL(KAppEmbeddableEmbeddedSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiNotStandAloneSisFile);
+    sisFIleInstaller.InstallSisL(KAppEmbeddableUiNotStandAloneSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiOrStandAloneEmbeddedSisFile);
+    sisFIleInstaller.InstallSisL(KAppEmbeddableUiOrStandAloneEmbeddedSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile);
+    sisFIleInstaller.InstallSisL(KSimpleAppSisFile);   
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KWinChainAppSisFile);
+    sisFIleInstaller.InstallSisL(KWinChainAppSisFile); 
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp7SisFile);
+    sisFIleInstaller.InstallSisL(KServerApp7SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestTrustedPriorityApp1SisFile);
+    sisFIleInstaller.InstallSisL(KTestTrustedPriorityApp1SisFile);    
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestUnTrustedPriorityApp1SisFile);
+    sisFIleInstaller.InstallSisL(KTestUnTrustedPriorityApp1SisFile);   
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestTrustedPriorityApp2SisFile);
+    sisFIleInstaller.InstallSisL(KTestTrustedPriorityApp2SisFile);       
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiOrStandAloneStandaloneSisFile);
+    sisFIleInstaller.InstallSisAndWaitForAppListUpdateL(KAppEmbeddableUiOrStandAloneStandaloneSisFile);
+       
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
 
+
 /**
    @return - TVerdict code
    Override of base class virtual
  */
 TVerdict CT_RApaLsSessionTestStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisFIleInstaller;
+    sisFIleInstaller.UninstallSisL(KApparcTestAppComponent);
+    sisFIleInstaller.UninstallSisL(KGroupNameTestAppComponent); 
+    sisFIleInstaller.UninstallSisL(KAppNotEmbeddableComponent);
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableOnlyComponent);
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableStandaloneComponent);    
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableEmbeddedComponent);
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableUiNotStandAloneComponent);
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableUiOrStandAloneEmbeddedComponent);
+    sisFIleInstaller.UninstallSisL(KAppEmbeddableUiOrStandAloneStandaloneComponent);
+    sisFIleInstaller.UninstallSisL(KSimpleAppComponent);
+    sisFIleInstaller.UninstallSisL(KWinChainAppComponent);    
+    sisFIleInstaller.UninstallSisL(KServerApp7Component); 
+    sisFIleInstaller.UninstallSisL(KTestTrustedPriorityApp1Component);       
+    sisFIleInstaller.UninstallSisL(KTestUnTrustedPriorityApp1Component);   
+    sisFIleInstaller.UninstallSisL(KTestTrustedPriorityApp2Component);    
 	return TestStepResult();
 	}
 
@@ -2603,7 +2645,15 @@
 TVerdict CT_RApaLsSessionTestStep::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Testing Apparc...T_RApaLsSession Test Cases Running..."));
-
+	
+	TApaAppInfo info;
+	TUid uid = {0xABCD0000};
+	TInt err = iLs.GetAppInfo(info, uid);
+	if(err == KErrNone)
+	{       
+	CSisFileInstaller sisFileInstaller;
+	sisFileInstaller.UninstallSisL(KZeroSizeIconAppComponent);
+	}
 	TRAPD(ret,RunTestCasesL())
 	TEST(ret==KErrNone);
 	
--- a/appfw/apparchitecture/tef/T_RApaLsSessionStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_RApaLsSessionStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -112,7 +112,9 @@
 	void TestAppListRecognizeDataPassedByBufferL();
 	void TestAppListInstallationL();
 	void TestAppListInstallation1L();
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	void TestAppFolderNonRomDrivesL();
+#endif	
 	void TestZeroSizedIconFileL();
 
 	void EmbeddedAppsTestCases();
--- a/appfw/apparchitecture/tef/T_RuleBasedLaunchingStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_RuleBasedLaunchingStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -29,6 +29,20 @@
 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "testableapalssession.h"
 
+#include "T_SisFileInstaller.h"
+
+_LIT(KRuleBasedApp1SisFile, "z:\\apparctest\\apparctestsisfiles\\tRuleBasedApp1.sis");
+_LIT(KRuleBasedApp1Component, "tRuleBasedApp1");
+
+_LIT(KRuleBasedApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\tRuleBasedApp2.sis");
+_LIT(KRuleBasedApp2Component, "tRuleBasedApp2");
+
+_LIT(KRuleBasedApp3SisFile, "z:\\apparctest\\apparctestsisfiles\\tRuleBasedApp3.sis");
+_LIT(KRuleBasedApp3Component, "tRuleBasedApp3");
+
+_LIT(KRuleBasedApp4SisFile, "z:\\apparctest\\apparctestsisfiles\\tRuleBasedApp4.sis");
+_LIT(KRuleBasedApp4Component, "tRuleBasedApp4");
+
 const TUint KNonNativeApplicationType = 0x10207f90;
 const TUint KNonNativeApplication = 0xA0000B6E;
 
@@ -55,7 +69,9 @@
 	CleanupClosePushL(theLs);
 	
 	//DONT_CHECK since app list is updated
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	HEAP_TEST_LS_SESSION(theLs, 0, DONT_CHECK, TestLaunchNonNativeApplicationForRuleBasedL(theLs), NO_CLEANUP);	
+#endif	
 	//DONT_CHECK since result is unstable
 	HEAP_TEST_LS_SESSION(theLs, 0, DONT_CHECK, LaunchAppTests1L(theLs), theLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(theLs, 0, 0, LaunchAppTests2L(theLs), theLs.FlushRecognitionCache() );
@@ -445,6 +461,38 @@
 	AppClosed(KUidApp4);
 	}
 
+TVerdict CTRuleBasedLaunchingStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFIleInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KRuleBasedApp1SisFile);
+    sisFIleInstaller.InstallSisL(KRuleBasedApp1SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KRuleBasedApp2SisFile);
+    sisFIleInstaller.InstallSisL(KRuleBasedApp2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KRuleBasedApp3SisFile);
+    sisFIleInstaller.InstallSisL(KRuleBasedApp3SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KRuleBasedApp4SisFile);
+    sisFIleInstaller.InstallSisAndWaitForAppListUpdateL(KRuleBasedApp4SisFile);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+TVerdict CTRuleBasedLaunchingStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFIleInstaller;
+    sisFIleInstaller.UninstallSisL(KRuleBasedApp1Component);
+    sisFIleInstaller.UninstallSisL(KRuleBasedApp2Component); 
+    sisFIleInstaller.UninstallSisL(KRuleBasedApp3Component);
+    sisFIleInstaller.UninstallSisL(KRuleBasedApp4Component);
+    return TestStepResult();
+    }
+
+
 TVerdict CTRuleBasedLaunchingStep::doTestStepL()
 	{
 	INFO_PRINTF1(_L("TRuleBasedLaunchingStep test started...."));
--- a/appfw/apparchitecture/tef/T_RuleBasedLaunchingStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_RuleBasedLaunchingStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -31,6 +31,8 @@
 	{
 public:
 	CTRuleBasedLaunchingStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 	void ExecuteL();
 private:
--- a/appfw/apparchitecture/tef/T_Serv2Step.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_Serv2Step.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -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,36 @@
 #include <eikenv.h>
 #include "TAppEmbedUids.h"
 #include "appfwk_test_utils.h"
+#include "T_SisFileInstaller.h"  
+
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
+_LIT(KAppEmbeddableEmbeddedSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddable_embedded.sis");
+_LIT(KAppEmbeddableEmbeddedComponent, "TAppEmbeddable_embedded");
+
+_LIT(KAppNotEmbeddableV2SisFile, "z:\\apparctest\\apparctestsisfiles\\TAppNotEmbeddable_v2.sis");
+_LIT(KAppNotEmbeddableV2Component, "TAppNotEmbeddable_v2");
+
+_LIT(KAppEmbeddableOnlyV2SisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableOnly_v2.sis");
+_LIT(KAppEmbeddableOnlyV2Component, "TAppEmbeddableOnly_v2");
+
+_LIT(KAppEmbeddableStandaloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddable_standalone.sis");
+_LIT(KAppEmbeddableStandaloneComponent, "TAppEmbeddable_standalone");
+
+_LIT(KAppEmbeddableUiNotStandAloneV2SisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiNotStandAlone_v2.sis");
+_LIT(KAppEmbeddableUiNotStandAloneV2Component, "TAppEmbeddableUiNotStandAlone_v2");
+
+_LIT(KAppEmbeddableUiOrStandAloneEmbeddedSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiOrStandAlone_embedded.sis");
+_LIT(KAppEmbeddableUiOrStandAloneEmbeddedComponent, "TAppEmbeddableUiOrStandAlone_embedded");
+
+
+_LIT(KAppEmbeddableUiOrStandAloneStandaloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TAppEmbeddableUiOrStandAlone_standalone.sis");
+_LIT(KAppEmbeddableUiOrStandAloneStandaloneComponent, "TAppEmbeddableUiOrStandalone_standalone");
+                                                       
+_LIT(KSimpleAppSisFile, "z:\\apparctest\\apparctestsisfiles\\SimpleApparcTestApp.sis");
+_LIT(KSimpleAppComponent, "SimpleApparcTestApp");
+
 
 // Constants
 const TInt KOneSecondDelay = 1000000;
@@ -105,8 +135,11 @@
 	{
 	_LIT(KLitAppPath,"z:\\sys\\bin\\tstapp.exe");
 	TFullName appPath(KLitAppPath);
+	
+
 	//Search for TestApp
 	TApaAppInfo info;
+	
 	TInt ret = aLs.GetAllApps();
 	TEST(ret==KErrNone);
 	
@@ -1387,27 +1420,12 @@
  */
 void CT_Serv2Step::DoInstallationTestL (RApaLsSession ls)
  	{
- 	_LIT(KTestAppDestDir, "C:\\private\\10003a3f\\import\\apps\\" );
- 	_LIT(KTestAppSource, "Z:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc" );
- 	_LIT(KTestAppDest, "C:\\private\\10003a3f\\import\\apps\\tstapp_reg.rsc" );
 
- 	_LIT(KTestWaitingForApplistUpdate,"\nWaiting %d microseconds for applist to be updated");
- 	const TInt KApplistUpdateTime = 8000000;
-
- 	// Copy App files around and delete them to check whether 
-	// the app list updates and stores the cache correctly.
- 	RFs	theFs;
- 	theFs.Connect();
  
- 	// Remove Test app from the file system
- 	CFileMan* fileManager = CFileMan::NewL (theFs);
- 
- 	INFO_PRINTF1(_L("Copying the app to C"));
- 	TEST(KErrNone == fileManager->Copy (KTestAppSource, KTestAppDest, CFileMan::ERecurse));
- 	
- 	INFO_PRINTF2(KTestWaitingForApplistUpdate, KApplistUpdateTime);
- 	User::After(KApplistUpdateTime);
- 
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
+    
  	TApaAppInfo aInfo;
  	TEST(KErrNone == ls.GetAppInfo (aInfo, KUidTestApp));
 
@@ -1417,15 +1435,10 @@
 	TEST(parse.Drive ().CompareF (KCdrive) == 0);
  
  	INFO_PRINTF1(_L("Removing the app from C"));
-	TTime tempTime(0);
-	fileManager->Attribs(KTestAppDest,0,KEntryAttReadOnly, tempTime, CFileMan::ERecurse);
- 	TEST(KErrNone == fileManager->Delete (KTestAppDest, CFileMan::ERecurse));
-	INFO_PRINTF1(_L("Removing the app dir from C"));
-	TEST(fileManager->RmDir(KTestAppDestDir)==KErrNone);
+
+ 
  	
-	INFO_PRINTF2(KTestWaitingForApplistUpdate, KApplistUpdateTime);
-	User::After(KApplistUpdateTime);
- 
+ 	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTstAppStandAloneComponent);
  	// That should put the file in the right place
  	TEST(KErrNone == ls.GetAppInfo( aInfo, KUidTestApp));
 
@@ -1433,9 +1446,7 @@
  	_LIT (KZdrive, "Z:");
 	INFO_PRINTF1(_L("Comparing App drive location is Z:... "));
  	TEST((parse1.Drive().CompareF(KZdrive)) == 0);
- 	
- 	delete fileManager;
- 	theFs.Close();
+
  }
 
 //
@@ -1757,6 +1768,24 @@
    Override of base class virtual
  */
 	{
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableEmbeddedSisFile);
+    sisFileInstaller.InstallSisL(KAppEmbeddableEmbeddedSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppNotEmbeddableV2SisFile);
+    sisFileInstaller.InstallSisL(KAppNotEmbeddableV2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableOnlyV2SisFile);
+    sisFileInstaller.InstallSisL(KAppEmbeddableOnlyV2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableStandaloneSisFile);
+    sisFileInstaller.InstallSisL(KAppEmbeddableStandaloneSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiNotStandAloneV2SisFile);
+    sisFileInstaller.InstallSisL(KAppEmbeddableUiNotStandAloneV2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiOrStandAloneEmbeddedSisFile);
+    sisFileInstaller.InstallSisL(KAppEmbeddableUiOrStandAloneEmbeddedSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile);
+    sisFileInstaller.InstallSisL(KSimpleAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KAppEmbeddableUiOrStandAloneStandaloneSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KAppEmbeddableUiOrStandAloneStandaloneSisFile); 
+    
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
@@ -1767,6 +1796,16 @@
    Override of base class virtual
  */
 	{
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KAppEmbeddableEmbeddedComponent);
+    sisFileInstaller.UninstallSisL(KAppNotEmbeddableV2Component);
+    sisFileInstaller.UninstallSisL(KAppEmbeddableOnlyV2Component);
+    sisFileInstaller.UninstallSisL(KAppEmbeddableStandaloneComponent);
+    sisFileInstaller.UninstallSisL(KAppEmbeddableUiNotStandAloneV2Component);
+    sisFileInstaller.UninstallSisL(KAppEmbeddableUiOrStandAloneEmbeddedComponent);
+    sisFileInstaller.UninstallSisL(KAppEmbeddableUiOrStandAloneStandaloneComponent);
+    sisFileInstaller.UninstallSisL(KSimpleAppComponent);
+    
 	return TestStepResult();
 	}
 
--- a/appfw/apparchitecture/tef/T_ServiceRegistryStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ServiceRegistryStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -25,16 +25,18 @@
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apaidpartner.h>
 #endif
-
-
+#include "T_SisFileInstaller.h" 
+ 
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
 
-_LIT(KImportAppsDir,"c:\\private\\10003a3f\\import\\apps\\");
-_LIT(KAppRscSourcePath,"z:\\system\\data\\TestUpdRegAppUninstallation_reg.rsc");
-_LIT(KUpgradeAppRscSourcePath,"z:\\system\\data\\TestUpgradeUpdRegAppUninstallation_reg.rsc");
-_LIT(KAppRscTargetPath,"c:\\private\\10003a3f\\import\\apps\\TestUpdRegAppUninstallation_reg.rsc");
+_LIT(KServerApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp2.sis");
+_LIT(KServerApp2Component, "serverapp2");
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
 
 _LIT8(KLitMimeType,"mime/updregappuninstall");
-_LIT8(KLitUpgradeAppMimeType,"mime/upgradeupdregappuninstall");
 
 /**
  * Constructor
@@ -58,6 +60,10 @@
  */	
 TVerdict CT_ServiceRegistryTestStep::doTestStepPreambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp2SisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KServerApp2SisFile);
+    
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
@@ -68,6 +74,9 @@
  */
 TVerdict CT_ServiceRegistryTestStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KServerApp2Component);
+    
 	return TestStepResult();
 	}
 
@@ -95,6 +104,15 @@
 	RTestableApaLsSession ls;
 	TEST(KErrNone == ls.Connect());
 	CleanupClosePushL(ls);
+	
+	TApaAppInfo info;
+	TUid uid = {0x100048F3};
+	TInt err = ls.GetAppInfo(info, uid);
+	if(err == KErrNone)
+        {       
+        CSisFileInstaller sisFileInstaller;
+        sisFileInstaller.UninstallSisL(KApparcTestAppComponent);
+        } 
 
 	// Use DONT_CHECK because it complaints of heap unbalance (a CTypeStoreManager object, althought it is not actually leaked,
 	//   but reallocated in CApaAppListServer::DoUpdateTypeStoreL(void)). 
@@ -102,7 +120,9 @@
 	//	 a CApaFsMonitor object, which introduces an extra 0.25 second delay before invoking the callback.
 	//	 *** See DEF101056 ****
 	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestAssociation1L(), NO_CLEANUP);
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestAppForDataTypeAndServiceL(ls), NO_CLEANUP);
+#endif	
     HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestUpdateOfServiceRegistryOnAppUninstallationL(ls), NO_CLEANUP);
     HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestServiceRegistryOnAppUpgradeL(ls), NO_CLEANUP);    
     
@@ -279,42 +299,27 @@
     CleanupClosePushL(fs);
     User::LeaveIfError(fs.Connect());
 
-     TInt err = fs.CreateDirectoryL(KImportAppsDir);
-     TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
-     INFO_PRINTF1(_L("c:\\private\\10003a3f\\import\\apps is created successfully or already exists"));
-     
-     //Make sure that the target file does not exist.
-     DeleteFileL(fs, KAppRscTargetPath);
-
-     // Copy TestUpdRegAppUninstallation_reg.rsc from z:\ to c:\private\10003a3f\import\apps\.
-     err = fs.CopyFileL(KAppRscSourcePath, KAppRscTargetPath);
-     TEST(err == KErrNone);
-     INFO_PRINTF1(_L("Successfully copied TestUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
-
-     //Wait till the applist is updated.
-     WaitForAppListUpdateL();
-
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile);
+    
      CServiceRegistry* registry = CServiceRegistry::NewL();
      CleanupStack::PushL(registry);
      
-     TUid appUid = {0x10207f80};
+     TUid appUid = {0x100048f3};
      TUid resultUid={KNullUidValue};    
      TDataType dataType (KLitMimeType);
      
-     //Test whether 0x10207f80 application is in application list.
+     //Test whether 0x100048f3 application is in application list.
      TApaAppInfo appInfo;
      TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
 
-     //Set 0x10207f80 as default application for "mime/updregappuninstall" MIME type.
+     //Set 0x100048f3 as default application for "mime/updregappuninstall" MIME type.
      registry->SetDefault(KOpenServiceUid,dataType, appUid);
      registry->GetDefault(KOpenServiceUid,dataType, resultUid);
      TEST(appUid==resultUid);
  
-     //Delete file c:\\private\\10003a3f\\import\\apps\\TestUpdRegAppUninstallation_reg.rsc 
-     DeleteFileL(fs, KAppRscTargetPath);
-     
-     //Wait till the application list is updated.
-     WaitForAppListUpdateL();  
+     sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent);
      
      //Check the application is removed from the application list
      TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNotFound);
@@ -353,62 +358,26 @@
     {
     INFO_PRINTF1(_L("TestServiceRegistryOnAppUpgrade"));
  
-    RSmlTestUtils fs;
-    CleanupClosePushL(fs);
-    User::LeaveIfError(fs.Connect());
-
-     TInt err = fs.CreateDirectoryL(KImportAppsDir);
-     TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
-     INFO_PRINTF1(_L("c:\\private\\10003a3f\\import\\apps is created successfully or already exists"));
-     
-     //Make sure that the target file does not exist.
-     DeleteFileL(fs, KAppRscTargetPath);
-
-     // Copy TestUpdRegAppUninstallation_reg.rsc from z:\ to c:\private\10003a3f\import\apps\.
-     err = fs.CopyFileL(KAppRscSourcePath, KAppRscTargetPath);
-     TEST(err == KErrNone);
-     INFO_PRINTF1(_L("Successfully copied TestUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
-
-     //Wait till the applist is updated.
-     WaitForAppListUpdateL();
-
      CServiceRegistry* registry = CServiceRegistry::NewL();
      CleanupStack::PushL(registry);
      
-     TUid appUid = {0x10207f80};
+     TUid appUid = {0xA};
      TUid resultUid={KNullUidValue};    
      TDataType dataType (KLitMimeType);
      
-     //Test whether 0x10207f80 application is in application list.
+     //Test whether 0xA application is in application list.
      TApaAppInfo appInfo;
      TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
 
-     //Set 0x10207f80 as default application for "mime/updregappuninstall" MIME type.
+     //Set 0xA as default application for "mime/updregappuninstall" MIME type.
      registry->SetDefault(KOpenServiceUid,dataType, appUid);
      registry->GetDefault(KOpenServiceUid,dataType, resultUid);
      TEST(appUid==resultUid);
      
-     TDataType upgDataType(KLitUpgradeAppMimeType);
-     err=aLs.AppForDataType(upgDataType,resultUid);
-     TEST(resultUid.iUid==KNullUidValue);
- 
-     DeleteFileL(fs, KAppRscTargetPath);
+     CSisFileInstaller sisFIleInstaller;
+     INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+     sisFIleInstaller.InstallSisAndWaitForAppListUpdateL(KTstAppStandAloneSisFile);
      
-     err = fs.CopyFileL(KUpgradeAppRscSourcePath, KAppRscTargetPath);
-     TEST(err == KErrNone);
-     INFO_PRINTF1(_L("Successfully copied TestUpgradeUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
-
-     //Change the modified time of the file to current time
-     RFs aFs;
-     TEST(aFs.Connect()==KErrNone);
-     TTime modifiedTime(0);
-     modifiedTime.HomeTime();
-     TEST(aFs.SetModified(KAppRscTargetPath, modifiedTime)==KErrNone);
-     aFs.Close();
-     
-     //Wait till the applist is updated.
-     WaitForAppListUpdateL();
-    
      //Check the application is not removed from the application list
      TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
      
@@ -416,13 +385,9 @@
      TEST(registry->GetDefault(KOpenServiceUid,dataType, resultUid)==KErrNone);
      TEST(resultUid==appUid);
      
-     err=aLs.AppForDataType(upgDataType,resultUid);
-     TEST((err==KErrNone) && (resultUid==appUid));
-     
-     DeleteFileL(fs,KAppRscTargetPath);
+     sisFIleInstaller.UninstallSisL(KTstAppStandAloneComponent);
 
      CleanupStack::PopAndDestroy(registry);
-     CleanupStack::PopAndDestroy(&fs);  
     }
 
 
--- a/appfw/apparchitecture/tef/T_ServicesStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_ServicesStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -21,6 +21,8 @@
 
 #include <barsread.h>
 #include "T_ServicesStep.h"
+#include "T_SisFileInstaller.h" 
+
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apaidpartner.h>
 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
@@ -30,6 +32,37 @@
 _LIT8(KLitPriorityText,"text/priority");
 _LIT8(KLitCustom1Text, "text/custom1");
 
+
+_LIT(KServerApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp2.sis");
+_LIT(KServerApp2Component, "serverapp2");
+
+_LIT(KServerApp4SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp4.sis");
+_LIT(KServerApp4Component, "serverapp4");
+
+_LIT(KServerApp6SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp6.sis");
+_LIT(KServerApp6Component, "serverapp6");
+
+_LIT(KServerApp7SisFile, "z:\\apparctest\\apparctestsisfiles\\serverapp7.sis");
+_LIT(KServerApp7Component, "serverapp7");
+
+_LIT(KOpenServiceApp1SisFile, "z:\\apparctest\\apparctestsisfiles\\openservice1app.sis");
+_LIT(KOpenServiceApp1Component, "openservice1app");
+
+_LIT(KOpenServiceApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\openservice2app.sis");
+_LIT(KOpenServiceApp2Component, "openservice2app");
+
+_LIT(KCtrlPanelAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TCtrlPnlApp.sis");
+_LIT(KCtrlPanelAppComponent, "TCtrlPnlApp");
+
+_LIT(KDataPrioritySystem1SisFile, "z:\\apparctest\\apparctestsisfiles\\T_DataPrioritySystem1.sis");
+_LIT(KDataPrioritySystem1Component, "T_DataPrioritySystem1");
+
+_LIT(KDataPrioritySystem2SisFile, "z:\\apparctest\\apparctestsisfiles\\T_DataPrioritySystem2.sis");
+_LIT(KDataPrioritySystem2Component, "T_DataPrioritySystem2");
+
+_LIT(KDataPrioritySystem3SisFile, "z:\\apparctest\\apparctestsisfiles\\T_DataPrioritySystem3.sis");
+_LIT(KDataPrioritySystem3Component, "T_DataPrioritySystem3");
+
 /**
    Constructor
  */	
@@ -53,6 +86,28 @@
  */	
 TVerdict CT_ServicesTestStep::doTestStepPreambleL()
 	{
+    CSisFileInstaller sisInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp2SisFile);
+    sisInstaller.InstallSisL(KServerApp2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp4SisFile);
+    sisInstaller.InstallSisL(KServerApp4SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp6SisFile);
+    sisInstaller.InstallSisL(KServerApp6SisFile);   
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KOpenServiceApp1SisFile);
+    sisInstaller.InstallSisL(KOpenServiceApp1SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KOpenServiceApp2SisFile);
+    sisInstaller.InstallSisL(KOpenServiceApp2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KCtrlPanelAppSisFile);
+    sisInstaller.InstallSisL(KCtrlPanelAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KDataPrioritySystem1SisFile);
+    sisInstaller.InstallSisL(KDataPrioritySystem1SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KDataPrioritySystem2SisFile);
+    sisInstaller.InstallSisL(KDataPrioritySystem2SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KDataPrioritySystem3SisFile);
+    sisInstaller.InstallSisL(KDataPrioritySystem3SisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KServerApp7SisFile);
+    sisInstaller.InstallSisAndWaitForAppListUpdateL(KServerApp7SisFile);
+    
 	SetTestStepResult(EPass);
 	TInt error = iApaLsSession.Connect();
 	TEST(error==KErrNone);
@@ -65,6 +120,17 @@
  */
 TVerdict CT_ServicesTestStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisInstaller;
+    sisInstaller.UninstallSisL(KServerApp2Component);
+    sisInstaller.UninstallSisL(KServerApp4Component);
+    sisInstaller.UninstallSisL(KServerApp6Component);
+    sisInstaller.UninstallSisL(KServerApp7Component);
+    sisInstaller.UninstallSisL(KOpenServiceApp1Component);
+    sisInstaller.UninstallSisL(KOpenServiceApp2Component); 
+    sisInstaller.UninstallSisL(KCtrlPanelAppComponent); 
+    sisInstaller.UninstallSisL(KDataPrioritySystem1Component); 
+    sisInstaller.UninstallSisL(KDataPrioritySystem2Component); 
+    sisInstaller.UninstallSisL(KDataPrioritySystem3Component);     
 	return TestStepResult();
 	}
 
@@ -85,6 +151,7 @@
 TInt CT_ServicesTestStep::RunTestCasesL()
 	{
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery1L(), iApaLsSession.ClearAppInfoArray() );
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery2L(), iApaLsSession.ClearAppInfoArray() );
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery3L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery4L(), NO_CLEANUP);
@@ -92,10 +159,13 @@
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery6(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery7L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery8L(), NO_CLEANUP);
+#endif	
 	// The following two APIs InsertDataMappingL() & DeleteDataMappingL(), update the type store on the server side.
 	// This update takes place on the server side while the test case is still running, which causes the heap check to fail.
 	// To avoid the heap check on the server side, DONT_CHECK macro is used.
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestServiceDiscovery9(), NO_CLEANUP );
+#endif	
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery10L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery11L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery12L(), NO_CLEANUP);
@@ -135,7 +205,7 @@
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery24(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery25(), iApaLsSession.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery27(), iApaLsSession.FlushRecognitionCache() );
-	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery28L(), NO_CLEANUP);
+	//HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestServiceDiscovery28L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestOpenService1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestCtrlPnlAppL(), NO_CLEANUP);
 	// The following two APIs InsertDataMappingL() & DeleteDataMappingL(), update the type store on the server side.
--- a/appfw/apparchitecture/tef/T_StartAppStep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_StartAppStep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -24,10 +24,18 @@
 #include "tstapp.h"
 #include "TRApaLsSessionStartAppTest.h"
 #include <apacmdln.h>
+#include "T_SisFileInstaller.h"    
 
 _LIT(KCompleted, "Completed.");
 _LIT8(KLitPlainText,"text/plain");
 
+_LIT(KUnprotectedAppSisFile, "z:\\apparctest\\apparctestsisfiles\\UnProctectedUidApp.sis");
+_LIT(KUnprotectedAppComponent, "UnProctectedUidApp");
+
+_LIT(KRApaLsSessionStartAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TRApaLsSessionStartAppTestApp_v2.sis");
+_LIT(KRApaLsSessionStartAppComponent, "TRApaLsSessionStartAppTestApp_v2");
+
+
 const TInt KTUnProtectedAppTestPassed = 1234;
 
 class RIpcApparcFuzzTest : public RSessionBase
@@ -108,6 +116,13 @@
  */	
 TVerdict CT_StartAppTestStep::doTestStepPreambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KUnprotectedAppSisFile);
+    sisFileInstaller.InstallSisL(KUnprotectedAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KRApaLsSessionStartAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KRApaLsSessionStartAppSisFile); 
+    
 	SetTestStepResult(EPass);
 	TInt error = iApaLsSession.Connect();
 	TEST(error==KErrNone);
@@ -120,6 +135,11 @@
  */
 TVerdict CT_StartAppTestStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    
+    sisFileInstaller.UninstallSisL(KUnprotectedAppComponent);
+    sisFileInstaller.UninstallSisL(KRApaLsSessionStartAppComponent); 
+     
 	return TestStepResult();
 	}
 
--- a/appfw/apparchitecture/tef/T_StartDocStep.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_StartDocStep.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -22,6 +22,12 @@
 #include "testableapalssession.h"
 #include "T_StartDocStep.h"
 #include "TStartDoc.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KStartDocAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TStartDocApp_v2.sis");
+_LIT(KStartDocAppComponent, "TStartDocApp_v2");
+
+
 
 /**
    @SYMTestCaseID T-StartDocStep-TestStartDocL
@@ -119,6 +125,23 @@
 	User::After(1500000);
 	}
 
+TVerdict CT_StartDocStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KStartDocAppSisFile);
+    sisInstaller.InstallSisAndWaitForAppListUpdateL(KStartDocAppSisFile);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();    
+    }
+
+TVerdict CT_StartDocStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisInstaller;
+    sisInstaller.UninstallSisL(KStartDocAppComponent);
+    return TestStepResult();    
+    }
+
 TVerdict CT_StartDocStep::doTestStepL()
 {
 	INFO_PRINTF1(_L("Test Started"));
@@ -131,7 +154,7 @@
 	User::After(1500000);
 
 	// run the test
-	HEAP_TEST_LS_SESSION(ls, 0, 0, TestStartDocL(ls), NO_CLEANUP);
+	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestStartDocL(ls), NO_CLEANUP);
 	
 	CleanupStack::PopAndDestroy(&ls);
 
--- a/appfw/apparchitecture/tef/T_StartDocStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_StartDocStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -27,6 +27,8 @@
 class CT_StartDocStep : public CTestStep
 	{
 public:
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();       
 	virtual TVerdict doTestStepL();
 private:
 	void TestStartDocL(RApaLsSession& aLs);
--- a/appfw/apparchitecture/tef/T_WgnamStep.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_WgnamStep.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -201,6 +201,16 @@
 	TEST(apaWindowGroupName->AppUid()==uid);
 	INFO_PRINTF1(_L("\n"));
 	// User::After(2000000);
+	
+	// RDebug::Print(_L("Block 5a"));
+	INFO_PRINTF1(_L("Test setting appUid starting with 0"));
+	const TUid uid1={ 0x00000111 };
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	INFO_PRINTF2(_L("Setting app uid to %x\n"), uid1.iUid);
+	apaWindowGroupName->SetAppUid(uid1);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->AppUid()==uid1);
+	INFO_PRINTF1(_L("\n"));
 
 	// test setting caption
 	// RDebug::Print(_L("Block 6"));
--- a/appfw/apparchitecture/tef/T_WindowChainingStep.CPP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_WindowChainingStep.CPP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -23,6 +23,15 @@
 #include "T_WindowChainingStep.h"
 #include "TWindowChaining.h"
 #include <apacmdln.h>
+#include "T_SisFileInstaller.h"
+
+_LIT(KWinChainAppSisFile, "z:\\apparctest\\apparctestsisfiles\\t_winchainLaunch.sis");
+_LIT(KWinChainAppComponent, "t_winchainLaunch");
+
+_LIT(KWinChainChildAppSisFile, "z:\\apparctest\\apparctestsisfiles\\t_winchainChild.sis");
+_LIT(KWinChainChildAppComponent, "t_winchainChild");
+
+
 
 /**
    @SYMTestCaseID TODO
@@ -112,6 +121,30 @@
 		SetTestStepResult(EFail);
 	}
 	
+
+TVerdict CT_WindowChainingStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KWinChainChildAppSisFile);
+    sisInstaller.InstallSisL(KWinChainChildAppSisFile);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KWinChainAppSisFile);
+    sisInstaller.InstallSisAndWaitForAppListUpdateL(KWinChainAppSisFile);  
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();    
+    }
+
+
+TVerdict CT_WindowChainingStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisInstaller;
+    sisInstaller.UninstallSisL(KWinChainChildAppComponent);
+    sisInstaller.UninstallSisL(KWinChainAppComponent);
+    
+    return TestStepResult();    
+    }
+
+
 TVerdict CT_WindowChainingStep::doTestStepL()
 {
 	__UHEAP_MARK;
--- a/appfw/apparchitecture/tef/T_WindowChainingStep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_WindowChainingStep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -27,6 +27,8 @@
 class CT_WindowChainingStep : public CTestStep
 	{
 public:
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();    
 	virtual TVerdict doTestStepL();
 private:
 	void TestWindowChainingL();
--- a/appfw/apparchitecture/tef/T_groupNametest.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,6 +30,11 @@
 #include "T_groupNametest.h"
 #include "apparctestserver.h"
 #include <test/testexecutestepbase.h>
+#include "T_SisFileInstaller.h"
+
+_LIT(KGroupNameTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\t_groupname.sis");
+_LIT(KGroupNameTestAppComponent, "T_groupname");
+
 
 // CT_GroupNameStep
 
@@ -99,6 +104,23 @@
 
 	}
 
+TVerdict CT_GroupNameStep::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KGroupNameTestAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KGroupNameTestAppSisFile);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+TVerdict CT_GroupNameStep::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KGroupNameTestAppComponent);
+    
+    return TestStepResult();
+    }
+
 /**
    @return - TVerdict code
    Override of base class virtual
--- a/appfw/apparchitecture/tef/T_groupNametest.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -32,6 +32,8 @@
 	CT_GroupNameStep();
 	~CT_GroupNameStep();
 	virtual TVerdict doTestStepL();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	void DoTestGroupNameL(RApaLsSession& aLs);
 
 private:
--- a/appfw/apparchitecture/tef/T_groupNametest_ver1.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest_ver1.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,6 +30,10 @@
 #include "T_groupNametest_ver1.h"
 #include "apparctestserver.h"
 #include <test/testexecutestepbase.h>
+#include "T_SisFileInstaller.h"
+
+_LIT(KGroupNameVer1AppSisFile, "z:\\apparctest\\apparctestsisfiles\\T_groupname_ver1.sis");
+_LIT(KGroupNameVer1AppComponent, "T_groupname_ver1");
 
 // CT_GroupNameStep_ver1
 
@@ -90,6 +94,24 @@
 	TEST(capability.iGroupName == KGroupname);
 	}
 
+TVerdict CT_GroupNameStep_ver1::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KGroupNameVer1AppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KGroupNameVer1AppSisFile);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+	
+TVerdict CT_GroupNameStep_ver1::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KGroupNameVer1AppComponent);
+    
+    return TestStepResult();
+    }
+
 /**
    @return - TVerdict code
    Override of base class virtual
--- a/appfw/apparchitecture/tef/T_groupNametest_ver1.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest_ver1.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -31,6 +31,8 @@
 public:
 	CT_GroupNameStep_ver1();
 	~CT_GroupNameStep_ver1();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 	void DoTestGroupNameL(RApaLsSession& aLs);
 
--- a/appfw/apparchitecture/tef/T_groupNametest_ver2.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest_ver2.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,6 +30,10 @@
 #include "T_groupNametest_ver2.h"
 #include "apparctestserver.h"
 #include <test/testexecutestepbase.h>
+#include "T_SisFileInstaller.h"
+
+_LIT(KGroupNameVer2AppSisFile, "z:\\apparctest\\apparctestsisfiles\\T_groupname_ver2.sis");
+_LIT(KGroupNameVer2AppComponent, "T_groupname_ver2");
 
 // CT_GroupNameStep_ver2
 
@@ -87,6 +91,25 @@
 	TEST(info.iShortCaption == KShortCaption);
 	}
 
+TVerdict CT_GroupNameStep_ver2::doTestStepPreambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KGroupNameVer2AppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KGroupNameVer2AppSisFile);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+	
+TVerdict CT_GroupNameStep_ver2::doTestStepPostambleL()
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KGroupNameVer2AppComponent);
+    
+    return TestStepResult();
+    }
+
+
 /**
    @return - TVerdict code
    Override of base class virtual
--- a/appfw/apparchitecture/tef/T_groupNametest_ver2.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/T_groupNametest_ver2.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,6 +30,8 @@
 public:
 	CT_GroupNameStep_ver2();
 	~CT_GroupNameStep_ver2();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	virtual TVerdict doTestStepL();
 	void DoTestCaptionNameL(RApaLsSession& aLs);
 	
--- a/appfw/apparchitecture/tef/UnProctectedUidApp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/UnProctectedUidApp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -36,13 +36,13 @@
 
 start resource	UnProctectedUidApp.rss
 HEADER
-targetpath 		/resource/apps
+targetpath 		/apparctestregfiles
 end
 
 // Application exe registration resource file
 resource	UnProctectedUidApp_reg.rss
 start resource	UnProctectedUidApp_reg.rss
-targetpath 	/private/10003a3f/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
--- a/appfw/apparchitecture/tef/app_CTRL.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/app_CTRL.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -38,21 +38,21 @@
 // Application exe specific resource which is localised to the application
 resource  	App_CTRL.rss
 start resource  App_CTRL.rss
-targetpath	/resource/apps
+targetpath	/apparctestregfiles
 lang 		sc
 end
 
 // Application exe registration resource file
 resource  	App_CTRL_reg.rss
 start resource 	App_CTRL_reg.rss
-targetpath 	/private/10003a3f/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
 // Application localisable resource file
 resource  	App_ctrl_loc.RSS
 start resource 	App_ctrl_loc.RSS
-targetpath 	/resource/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
--- a/appfw/apparchitecture/tef/app_CTRL2.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/app_CTRL2.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -41,14 +41,14 @@
 // Application exe specific resource which is localised to the application
 resource	App_CTRL2.rss
 start resource	App_CTRL2.rss
-targetpath	/resource/apps
+targetpath	/apparctestregfiles
 lang		sc
 end
 
 // Application exe registration resource file
 resource	App_CTRL2_reg.rss
 start resource	App_CTRL2_reg.rss
-targetpath 	/private/10003a3f/import/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/app_ctrl2_stub.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// App_CTRL2.MMP for test component App_CTRL2 (released in APPARC)
+//
+
+target		app_ctrl2.exe
+TARGETTYPE 	exe
+
+CAPABILITY 	All -Tcb
+VENDORID 	0x70000001
+
+UID             0x100039CE 0x13008ADE
+targetpath 	/sys/bin
+SOURCEPATH	.	
+
+// your public include directory should be here
+userinclude   ../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/techview
+//systeminclude   /epoc32/include/kernel
+
+source          app_CTRL2.CPP
+
+// Application exe specific resource which is localised to the application
+resource	App_CTRL2.rss
+start resource	App_CTRL2.rss
+targetpath	/resource/apps
+lang		sc
+end
+
+// Application exe registration resource file
+resource	App_CTRL2_reg.rss
+start resource	App_CTRL2_reg.rss
+targetpath 	/private/10003a3f/import/apps
+lang		sc
+end
+
+
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/apparctestserver.MMP	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/apparctestserver.MMP	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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 @@
 target			apparctestserver.exe
 targettype		exe
 UID             0x1000007A 0x101F289C
-CAPABILITY  	AllFiles WriteDeviceData PowerMgmt Protserv SwEvent
+CAPABILITY  	AllFiles WriteDeviceData PowerMgmt Protserv SwEvent ReadUserData
 
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
@@ -32,7 +32,12 @@
 //-------START 
 
 SOURCE		T_Foreground.cpp
-SOURCE		T_ProStep.cpp T_OOMStep.cpp T_File2Step.cpp T_File3Step.cpp
+SOURCE		T_ProStep.cpp T_OOMStep.cpp
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+SOURCE		T_File2Step.cpp T_File3Step.cpp
+#endif
+
 SOURCE		T_BackupStep.cpp T_MdrStep.cpp
 SOURCE		T_Serv2Step.CPP  T_Serv3Step.cpp
 SOURCE		T_MRUStep.CPP T_WgnamStep.CPP
@@ -75,6 +80,15 @@
 SOURCE		t_servicebasestep.cpp
 SOURCE		T_RecUpgrade.cpp
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+SOURCE		t_updateapplist.cpp
+SOURCE		t_forceregstep.cpp
+SOURCE		t_clientnotifstep.cpp
+SOURCE		t_nonnativetest.cpp
+#endif
+
+source 		t_sisfileinstaller.cpp
+
 
 resource		t_rapalssessionstep.rss
 start resource	t_rapalssessionstep.rss
@@ -82,7 +96,9 @@
 lang			SC
 end
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 // START resource files for service registration and discovery tests
+
 start resource	serverapp_loc.RSS
 HEADER
 targetpath	/resource/apps
@@ -154,6 +170,7 @@
 targetpath	/private/10003a3f/import/apps
 lang		SC 
 end
+#endif
 
 start bitmap		default_app_icon.m02
 targetpath		/resource/apps
@@ -163,6 +180,7 @@
 //END resource files for customising the default icon wrt locale
 
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 start resource	TestUnTrustedPriorityApp1_reg.rss 
 targetpath	/private/10003a3f/import/apps
 lang		sc
@@ -215,6 +233,7 @@
 start resource 		T_groupnamever2_reg.rss
 targetpath 		/private/10003a3f/apps
 end
+#endif
 
 //-------END 
 
@@ -227,7 +246,13 @@
 LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
 LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
 LIBRARY		aplist.lib
-LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+LIBRARY     	ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+LIBRARY     	sif.lib
+LIBRARY     	siftransport.lib
+LIBRARY		scsclient.lib
+LIBRARY		scrclient.lib sisregistryclient.lib scrdatabase.lib sishelper.lib
+
 // We're quite heavy on the stack... 4k in WinS isn't enough...
 EPOCSTACKSIZE	0xf000
 
--- a/appfw/apparchitecture/tef/apparctestserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/apparctestserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -38,8 +38,6 @@
 #include "t_foreground.h"
 #include "T_ProStep.h"
 #include "T_OOMStep.h"
-#include "T_File2Step.h"
-#include "T_File3Step.h"
 #include "T_BackupStep.h"
 #include "T_MdrStep.h"
 #include "T_Serv2Step.h"
@@ -72,19 +70,29 @@
 #include "T_DataMappingPersistenceA.h"
 #include "T_DataMappingPersistenceB.h"
 #include "T_DataMappingPersistenceC.h"
-#include "T_NonNativeAppsStep.h"
-#include "T_IntegritySupportStep.h"
-#include "T_IntegritySupportRebootStep.h"
 #include "T_ApsScan.h"
 #include "T_EndTaskStep.h"
 #include "T_RecUpgrade.h"
 #include "T_AppListFileBootStep.h"
 #include "T_AppListFileUpdateStep.h"
 #include "t_largestackstep.h"
-#include "t_drivenotification.h"
 #include "t_mimecontentpolicystep.h"
 #include "t_servicebasestep.h"
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK     
+#include "t_updateapplist.h"
+#include "t_forceregstep.h"
+#include "t_clientnotifstep.h"
+#include "t_nonnativetest.h"
+#else
+#include "T_File2Step.h"
+#include "T_File3Step.h"
+#include "T_NonNativeAppsStep.h"
+#include "T_IntegritySupportStep.h"
+#include "T_IntegritySupportRebootStep.h"
+#include "t_drivenotification.h"
+#endif
+
 CApparctestServer* CApparctestServer::NewL()
 /**
    @return - Instance of the test server
@@ -131,6 +139,7 @@
 		{
 		testStep = new CT_OOMStep();
 		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	else if(aStepName == KT_File2Step)
 		{
 		testStep = new CT_File2Step();
@@ -139,6 +148,7 @@
 		{
 		testStep = new CT_File3Step();
 		}
+#endif	
 	else if(aStepName == KT_BackupStep)
 		{
 		testStep = new CT_BackupStep();
@@ -278,6 +288,7 @@
 		{
 		testStep = new CT_DataMappingPersistenceCTestStep();
 		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 	
 	else if (aStepName == _L("T_NonNativeApps"))
 		{
 		testStep = new CT_NonNativeAppsStep();
@@ -294,6 +305,7 @@
 		{
 		testStep = new CT_IntegritySupportReboot2TestStep();
 		}
+#endif  	
 	else if (aStepName == KT_ApsScanStep)
 		{
 		testStep = new CT_ApsScanStep();
@@ -322,10 +334,12 @@
 		{
 		testStep = new CT_LargeStackStep();
 		}
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 	else if (aStepName == KT_DriveNotificationStep)
 		{
 		testStep = new CT_DriveNotificationStep();
 		}
+#endif	
 	else if (aStepName == KT_MimeContentPolicyStep)
 		{
 		testStep = new CT_MimeContentPolicyStep();
@@ -338,6 +352,24 @@
 		{
 		testStep = new CT_RecUpgradeStep();
 		}
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
+    else if (aStepName == KT_TestUpdateAppListStep)
+        {
+        testStep = new CT_TestUpdateAppListStep();
+        }
+    else if (aStepName == KT_ForceRegStep)
+        {
+        testStep = new CT_ForceRegStep();
+        }
+    else if (aStepName == KT_ClientNotifStep)
+        {
+        testStep = new CT_ClientNotifStep();
+        }
+    else if (aStepName == KT_NonNativeTestStep)
+        {
+        testStep = new CT_NonNativeTestStep();
+        }   
+#endif	
 
 	return testStep;
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/customisedefaulticonapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	CustomiseDefaultIconApp.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208181
+VENDORID  	0x70000001
+
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+
+// Application localisable resource file
+resource  	CustomiseDefaultIconApp_loc.RSS
+start resource 	CustomiseDefaultIconApp_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+START RESOURCE	CustomiseDefaultIconApp_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/a0001010.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code  
+*/
+
+
+//  INCLUDES
+#include <ecom/registryinfo.rh>
+
+
+// RESOURCE DEFINITIONS
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE REGISTRY_INFO r_registry
+    {
+    dll_uid = 0xA0001010;
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = 0x101F7D87; // Const for all Data Recognizers
+            implementations =
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0xA0001010; 
+                    version_no = 1;
+                    display_name = "TForceRegAppRec";
+                    default_data = "";
+                    opaque_data = "";
+                    }
+                };
+            }
+        };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp1.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,38 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32base.h>
+#include "../t_forceregstep.h"
+#include <e32property.h>
+
+
+TInt E32Main()
+    {
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    
+    TInt status;
+    forceRegStatus.Get(status);
+    status |= KForceRegApp1Executed;
+    forceRegStatus.Set(status);
+    forceRegStatus.Close();
+    
+    return(KErrNone);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        		forceregapp1.exe
+TARGETTYPE    		exe
+UID           		0x100039CE 0xA0001000
+VENDORID 	  		0x70000001
+
+SOURCEPATH    .
+SOURCE		  forceregapp1.cpp
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+
+START RESOURCE	forceregapp1_reg.rss
+TARGETPATH		/apparctestregfiles
+END
+
+LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp1_reg.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xA0001000 // application UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file = "forceregapp1";
+    datatype_list = 
+        {
+        DATATYPE { priority=EDataTypePriorityNormal; type="x-epoc/forcregapp1"; }
+        };	
+	}
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp2.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32base.h>
+#include "../t_forceregstep.h"
+#include <e32property.h>
+
+
+TInt E32Main()
+    {
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    
+    TInt status;
+    forceRegStatus.Get(status);
+    status |= KForceRegApp2Executed;
+    forceRegStatus.Set(status);
+    
+    TRequestStatus propertyChanged; 
+    
+    while(!(status & KStopForceRegApp2))
+    {
+    propertyChanged=KRequestPending;
+    forceRegStatus.Subscribe(propertyChanged);
+    User::WaitForRequest(propertyChanged);
+    forceRegStatus.Get(status);
+    }
+    
+    forceRegStatus.Close();
+    
+    return(KErrNone);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        		forceregapp2.exe
+TARGETTYPE    		exe
+UID           		0x100039CE 0xA0001001
+VENDORID 	  		0x70000001
+
+SOURCEPATH    .
+SOURCE		  forceregapp2.cpp
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+
+START RESOURCE	forceregapp2_reg.rss
+TARGETPATH		/apparctestregfiles
+END
+
+LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/forceregapp2_reg.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xA0001001 // application UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file = "forceregapp2";
+    datatype_list = 
+        {
+        DATATYPE { priority=EDataTypePriorityNormal; type="x-epoc/forcregapp2"; }
+        };	
+	}
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/tforceregapprec.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,157 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This recognizer is part of the supporting test code for T_ForceRegStep.CPP
+// 
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <e32std.h>
+#include <e32base.h>
+#include <apmstd.h>
+#include <apmrec.h>
+#include <f32file.h>
+
+#include <apfrec.h>
+#include <ecom/implementationproxy.h> 
+
+_LIT8(KLit8_DataType_ForceRegApp1, "x-epoc/forcregapp1");
+_LIT8(KLit8_DataType_ForceRegApp2, "x-epoc/forcregapp2");
+_LIT8(KLit8_DataType_ForceRegApp3, "x-epoc/forcregapp3");
+_LIT8(KLit8_DataType_ForceRegApp4, "x-epoc/forcregapp4");
+
+const TUid KUidForceRegAppRecognizer={0xA0001010};
+const TUint KImplForceRegAppRecognizer=0xA0001010;
+
+enum TMimeTypes
+    {
+    EMimeType1 = 0,
+    EMimeType2,
+    EMimeType3,
+    EMimeType4,
+    EMimeLast
+    };
+
+_LIT(KLitMimeExtension1, ".FRG1");
+_LIT(KLitMimeExtension2, ".FRG2");
+_LIT(KLitMimeExtension3, ".FRG3");
+_LIT(KLitMimeExtension4, ".FRG4");
+
+
+// CTForceRegAppRec definition
+
+class CTForceRegAppRec : public CApaDataRecognizerType
+	{
+public:
+	CTForceRegAppRec();
+	static CApaDataRecognizerType* CreateRecognizerL();
+private:
+	// from CApaDataRecognizerType
+	virtual TUint PreferredBufSize();
+	virtual TDataType SupportedDataTypeL(TInt aIndex) const;
+	virtual void DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer);
+	};
+
+
+// CTForceRegAppRec implementation
+
+CTForceRegAppRec::CTForceRegAppRec() 
+	:CApaDataRecognizerType(KUidForceRegAppRecognizer, EHigh)
+	{
+	iCountDataTypes = EMimeLast;
+	} 
+
+TUint CTForceRegAppRec::PreferredBufSize()
+	{
+	return 0;
+	}
+
+TDataType CTForceRegAppRec::SupportedDataTypeL(TInt aIndex) const
+	{
+	if (aIndex == EMimeType1)
+		return TDataType(KLit8_DataType_ForceRegApp1);
+    
+    else if (aIndex == EMimeType2)
+		return TDataType(KLit8_DataType_ForceRegApp2);
+    
+    else if (aIndex == EMimeType3)
+		return TDataType(KLit8_DataType_ForceRegApp3);
+    
+    else if (aIndex == EMimeType4)
+		return TDataType(KLit8_DataType_ForceRegApp4);
+    
+    else
+        return TDataType(KNullDesC8);
+    }
+ 
+
+void CTForceRegAppRec::DoRecognizeL(const TDesC& aName, const TDesC8&)
+	{
+
+	// Compare if the file extension is known
+	if (aName.Length() < 5)
+		{
+    	iDataType = TDataType(KNullDesC8); 	
+    	iConfidence = ENotRecognized;
+		return;
+		}
+
+	if (aName.Right(5).CompareF(KLitMimeExtension1) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_ForceRegApp1);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtension2) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_ForceRegApp2);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtension3) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_ForceRegApp3);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtension4) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_ForceRegApp4);
+		iConfidence = ECertain;
+		}
+    else
+    	{
+    	iDataType = TDataType(KNullDesC8); 	
+    	iConfidence = ENotRecognized;
+    	}
+	}
+
+// stand-alone functions
+
+CApaDataRecognizerType* CTForceRegAppRec::CreateRecognizerL()
+	{
+	return new (ELeave) CTForceRegAppRec();
+	}
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+	IMPLEMENTATION_PROXY_ENTRY(KImplForceRegAppRecognizer, CTForceRegAppRec::CreateRecognizerL)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/forceregapps/tforceregapprec.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,41 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+TARGET			tforceregapprec.dll
+CAPABILITY		All -Tcb
+TARGETTYPE		PLUGIN
+UID				0x10009d8d 0xA0001010
+VENDORID 		0x70000001
+
+SOURCEPATH		.
+SOURCE			TForceRegAppRec.cpp
+
+userinclude   ../../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY			euser.lib apmime.lib apparc.lib efsrv.lib
+
+start resource A0001010.rss
+target tforceregapprec.rsc
+end
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/m_ctrl_v2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/m_ctrl_v2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -43,19 +43,19 @@
 // Application exe specific resource which is localised to the application
 resource  	M_CTRL.rss
 start resource  M_CTRL.rss
-targetpath	/resource/apps
+targetpath	/apparctestregfiles
 lang 		sc
 end
 
 // Application exe registration resource file
 start resource 	M_CTRL_reg.rss
-targetpath 	/private/10003a3f/import/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
 // Application localisable resource file
 start resource 	M_CTRL_loc.RSS
-targetpath 	/resource/apps
+targetpath 	/apparctestregfiles
 lang		sc
 end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/m_ctrl_v2_stub.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// M_CTRL.MMP for test component M_CTRL (released in APPARC)
+// New style APP/EXE built for a secure environment
+//
+
+target 		m_ctrl.exe
+TARGETTYPE 	exe
+
+targetpath	/sys/bin
+UID		0x100039CE 0x13008AEE
+CAPABILITY 	All -Tcb
+VENDORID 	0x70000001
+
+epocstacksize 	0x5000
+
+SOURCEPATH	.
+
+
+userinclude   ../inc
+ 		
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/techview
+
+userinclude     .
+
+// Application exe specific resource which is localised to the application
+resource  	M_CTRL.rss
+start resource  M_CTRL.rss
+targetpath	/resource/apps
+lang 		sc
+end
+
+// Application exe registration resource file
+start resource 	M_CTRL_reg.rss
+targetpath 	/private/10003a3f/import/apps
+lang		sc
+end
+
+// Application localisable resource file
+start resource 	M_CTRL_loc.RSS
+targetpath 	/resource/apps
+lang		sc
+end
+
+SOURCE		M_CTRL_V2.CPP
+
+LIBRARY 	apparc.lib 
+LIBRARY 	cone.lib
+LIBRARY 	efsrv.lib
+LIBRARY 	eikcore.lib
+LIBRARY 	euser.lib 
+LIBRARY 	gdi.lib
+LIBRARY 	appfwk_test_appui.lib 
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/openservice1app.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	openservice1app.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208200
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	openservice1a.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/openservice2app.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	openservice2app.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208201
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	openservice1b.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/10285bc3.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* ECOM DLL UID:			0x10285BC3
+* ECOM interface UID:		0x10285BC2 (KUidSifPlugin)
+* ECOM Implementation:		0x10285BC4
+*
+*/
+
+
+#include <ecom/registryinfo.rh>
+
+RESOURCE REGISTRY_INFO so_registry
+	{
+	dll_uid = 0x10285BC3;
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = 0x10285BC2;
+			
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10285BC4;
+					version_no = 1;
+					default_data = "";
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/refnativeplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,619 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#include "refnativeplugin.h"
+#include "usiflog.h"
+#include "sisregistrywritablesession.h"
+
+#include <usif/sif/sif.h>
+#include <usif/sif/sifcommon.h>
+#include <usif/usiferror.h>
+#include <usif/sif/sifplugin.h>
+#include <usif/scr/screntries.h>
+#include <usif/scr/scr.h>
+#include <swi/msisuihandlers.h>
+#include <swi/asynclauncher.h>
+#include <swi/sisinstallerrors.h>
+#include <e32property.h>
+#include <sacls.h>
+#include <swi/sisregistrysession.h>
+
+using namespace Usif;
+
+static const TInt KRefNativePluginImpId = 0x10285BC4;
+
+static const TImplementationProxy ImplementationTable[] = 
+	{
+	IMPLEMENTATION_PROXY_ENTRY(KRefNativePluginImpId, CRefNativePlugin::NewL)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+	return ImplementationTable;
+	}
+
+CRefNativePlugin* CRefNativePlugin::NewL()
+	{
+	DEBUG_PRINTF(_L8("Constructing CRefNativePlugin"));
+	CRefNativePlugin *self = new (ELeave) CRefNativePlugin();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+void CRefNativePlugin::ConstructL()
+	{
+	iImpl = CRefNativePluginActiveImpl::NewL();
+	}
+
+CRefNativePlugin::~CRefNativePlugin()
+	{
+	delete iImpl;
+	}
+
+void CRefNativePlugin::CancelOperation()
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - Cancel"));
+	iImpl->Cancel();
+	}
+
+void CRefNativePlugin::GetComponentInfo(const TDesC& aFileName, const TSecurityContext& /*aSecurityContext*/,
+										 CComponentInfo& aComponentInfo, TRequestStatus& aStatus)
+	{
+	iImpl->GetComponentInfo(aFileName, aComponentInfo, aStatus);
+	}
+
+void CRefNativePlugin::GetComponentInfo(RFile& aFileHandle, const TSecurityContext& /*aSecurityContext*/,
+						 				CComponentInfo& aComponentInfo, TRequestStatus& aStatus)
+	{
+	iImpl->GetComponentInfo(aFileHandle, aComponentInfo, aStatus);
+	}
+
+void CRefNativePlugin::Install(const TDesC& aFileName, const TSecurityContext& aSecurityContext,
+								const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+								TRequestStatus& aStatus)
+	{
+	iImpl->Install(aFileName, aSecurityContext, aInputParams, aOutputParams, aStatus);
+	}
+
+void CRefNativePlugin::Install(RFile& aFileHandle, const TSecurityContext& aSecurityContext,
+								const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+								TRequestStatus& aStatus)
+	{
+	iImpl->Install(aFileHandle, aSecurityContext, aInputParams, aOutputParams, aStatus);
+	}
+
+void CRefNativePlugin::Uninstall(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+								const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus)
+	{
+	iImpl->Uninstall(aComponentId, aSecurityContext, aInputParams, aOutputParams, aStatus);
+	}
+
+void CRefNativePlugin::Activate(TComponentId aComponentId, const TSecurityContext& aSecurityContext, TRequestStatus& aStatus)
+
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - Activate"));
+	iImpl->Activate(aComponentId, aSecurityContext, aStatus);
+	}
+
+void CRefNativePlugin::Deactivate(TComponentId aComponentId, const TSecurityContext& aSecurityContext, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - Deactivate"));
+	iImpl->Deactivate(aComponentId, aSecurityContext, aStatus);
+	}
+
+//------------------CRefNativePluginActiveImpl---------------------
+
+CRefNativePluginActiveImpl* CRefNativePluginActiveImpl::NewL()
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - Constructing CRefNativePluginActiveImpl"));
+	CRefNativePluginActiveImpl *self = new (ELeave) CRefNativePluginActiveImpl();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(1, self);
+	return self;
+	}
+
+void CRefNativePluginActiveImpl::ConstructL()
+	{
+	iInstallPrefs = Swi::CInstallPrefs::NewL();
+	iAsyncLauncher = Swi::CAsyncLauncher::NewL();
+	iComponentInfo = CComponentInfo::NewL();
+	CActiveScheduler::Add(this);
+	}
+
+CRefNativePluginActiveImpl::~CRefNativePluginActiveImpl()
+	{
+	delete iAsyncLauncher;
+	delete iInstallPrefs;
+	delete iComponentInfo;
+	}
+
+TBool CRefNativePluginActiveImpl::NeedUserCapabilityL()
+	{
+	// Silent install is not allowed when the package requires additional capabilities
+	// than what it is signed for (Pakage may request for some capability that is not 
+	// granted by the certificate used to sign it).
+	for(TInt cap=0; cap<ECapability_Limit; ++cap)
+		{
+		if (iComponentInfo->RootNodeL().UserGrantableCaps().HasCapability(TCapability(cap)))
+			{
+			DEBUG_PRINTF2(_L("Package requires additional capability - %d"), cap);
+			return ETrue;
+			}
+		}
+			
+	return EFalse;
+	}
+
+void CRefNativePluginActiveImpl::RunL()
+	{
+	if (iSilentInstall)
+		{
+		DEBUG_PRINTF(_L("Silent install  - CRefNativePluginActiveImpl::RunL"));
+		ProcessSilentInstallL();
+		}
+	else
+		{
+		TInt res = iStatus.Int();
+		DEBUG_PRINTF2(_L8("Reference native plugin - Operation finished with result %d"), res);
+	
+		// Output options
+		if (iOutputParams != NULL)
+			{
+			iOutputParams->AddIntL(KSifOutParam_ExtendedErrCode, res);
+			
+			if (iInstallRequest && res == KErrNone)
+				{
+				TComponentId resultComponentId = 0;
+				TRAPD(getLastIdErr, resultComponentId = GetLastInstalledComponentIdL());
+				if (getLastIdErr == KErrNone)
+					iOutputParams->AddIntL(KSifOutParam_ComponentId, resultComponentId);
+				}
+			}
+	
+		User::RequestComplete(iClientStatus, res);
+		iClientStatus = NULL;
+		}
+	}
+
+void CRefNativePluginActiveImpl::ProcessSilentInstallL()
+	{
+	// We need to do this only once per installation request
+	iSilentInstall = EFalse;
+	iInstallRequest = ETrue;
+	
+	TBool isNotAuthenticated = (ENotAuthenticated == iComponentInfo->RootNodeL().Authenticity());
+	TBool reqUserCap = NeedUserCapabilityL();
+	if (isNotAuthenticated || reqUserCap)
+		{
+		if (isNotAuthenticated)
+			{
+				DEBUG_PRINTF(_L("Silent Install is not allowed on unsigned or self-signed packages"));
+			}
+		
+		if (reqUserCap)
+			{
+				DEBUG_PRINTF(_L("Silent Install is not allowed when user capabilities are required"));
+			}
+		
+		User::RequestComplete(iClientStatus, KErrNotSupported);
+		iClientStatus = NULL;
+		}		
+	else
+		{
+		TInt err;
+		if (iFileHandle)
+			{
+			TRAP(err, iAsyncLauncher->InstallL(*this, *iFileHandle, *iInstallPrefs, iStatus));
+			}
+		else
+			{
+			//DEBUG_PRINTF2(_L("!!!Silent install for %S"), iFileName);
+			TRAP(err, iAsyncLauncher->InstallL(*this, iFileName, *iInstallPrefs, iStatus));
+			}
+		
+		if (err != KErrNone)
+			{
+			User::RequestComplete(iClientStatus, err);
+			iClientStatus = NULL;			
+			}
+		
+		SetActive();
+		}
+	}
+
+void CRefNativePluginActiveImpl::DoCancel()
+	{
+	if (iClientStatus)
+		{
+		iAsyncLauncher->CancelOperation();
+		delete iAsyncLauncher;
+		iAsyncLauncher = NULL;
+		
+		User::RequestComplete(iClientStatus, KErrCancel);
+		iClientStatus = NULL;
+		}
+	}
+
+void CRefNativePluginActiveImpl::CommonRequestPreamble(const TSecurityContext& aSecurityContext, const COpaqueNamedParams& aInputParams, 
+				COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus)
+	{
+	aStatus = KRequestPending;
+	iClientStatus = &aStatus;
+
+	iInputParams = &aInputParams;
+	iOutputParams = &aOutputParams;
+
+	TInt declineOperation = 0;
+	TRAPD(err, aInputParams.GetIntByNameL(KDeclineOperationOptionName, declineOperation));
+	if(err == KErrNone && declineOperation)
+		{
+		iDeclineOperation = ETrue;
+		}
+	
+	// Check to see if we have the opaque input argument - InstallSilently 
+	TInt silentInstall = 0;
+	TRAP_IGNORE(aInputParams.GetIntByNameL(KSifInParam_InstallSilently, silentInstall));
+	if (silentInstall)
+		{
+		iSilentInstall = ETrue;
+		if (!aSecurityContext.HasCapability(ECapabilityTrustedUI))
+			{
+			User::RequestComplete(iClientStatus, KErrPermissionDenied);
+			iClientStatus = NULL;			
+			}
+		}	
+	}
+
+TComponentId CRefNativePluginActiveImpl::GetLastInstalledComponentIdL()
+  	{
+  	ASSERT(iInstallRequest);
+  
+  	// Find the id of the last installed component and return it
+  	TInt uid;
+  	User::LeaveIfError(RProperty::Get(KUidSystemCategory, KUidSwiLatestInstallation, uid));
+
+	Swi::RSisRegistrySession sisRegistrySession;
+	User::LeaveIfError(sisRegistrySession.Connect());
+	CleanupClosePushL(sisRegistrySession);
+  
+	TUid tuid(TUid::Uid(uid));
+	TComponentId componentId = sisRegistrySession.GetComponentIdForUidL(tuid);
+	CleanupStack::PopAndDestroy(&sisRegistrySession);
+	
+	return componentId;
+  	}
+
+void CRefNativePluginActiveImpl::GetComponentInfo(const TDesC& aFileName, CComponentInfo& aComponentInfo, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF2(_L("Reference native plugin - retrieving component info for %S"), &aFileName);
+
+	aStatus = KRequestPending;
+	iClientStatus = &aStatus;
+
+	TRAPD(err, iAsyncLauncher->GetComponentInfoL(*this, aFileName, *iInstallPrefs, aComponentInfo, iStatus));
+	if (err != KErrNone)
+		{
+		TRequestStatus *statusPtr(&aStatus);
+		User::RequestComplete(statusPtr, err);
+		return;
+		}
+
+	SetActive();
+	}
+
+void CRefNativePluginActiveImpl::GetComponentInfo(RFile& aFileHandle, CComponentInfo& aComponentInfo, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - getting component info by file handle"));
+	
+	aStatus = KRequestPending;
+	iClientStatus = &aStatus;	
+
+	TRAPD(err, iAsyncLauncher->GetComponentInfoL(*this, aFileHandle, *iInstallPrefs, aComponentInfo, iStatus));
+	if (err != KErrNone)
+		{
+		TRequestStatus *statusPtr(&aStatus);
+		User::RequestComplete(statusPtr, err);
+		return;
+		}
+
+	SetActive();
+	}	
+
+void CRefNativePluginActiveImpl::Install(const TDesC& aFileName, const TSecurityContext& aSecurityContext,
+											const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+											TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF2(_L("Reference native plugin - install for %S"), &aFileName);
+	
+	CommonRequestPreamble(aSecurityContext, aInputParams, aOutputParams, aStatus);
+	
+	TInt err;
+	if (iSilentInstall)
+		{
+		// Silent install does a few addtional checks on the package to see if is 
+		// signed and had the required capabilities. So we need to the get the 
+		// package component information with out installing it.
+		DEBUG_PRINTF2(_L("Silent install  - Get the ComponentInfo for %S"), &aFileName);
+		iFileName = aFileName;
+		TRAP(err, iAsyncLauncher->GetComponentInfoL(*this, aFileName, *iInstallPrefs, *iComponentInfo, iStatus));
+		}
+	else
+		{
+		// Proceed with the normal installation.
+		RArray<TInt> tmp;
+		tmp.Append(01);
+		tmp.Append(02);
+		tmp.Append(03);
+		tmp.Append(04);
+		tmp.Append(05);		
+		TRAP(err, iAsyncLauncher->InstallL(*this, aFileName, *iInstallPrefs, tmp, iStatus));
+		tmp.Close();
+		iInstallRequest = ETrue;
+		}
+	
+	if (err != KErrNone)
+		{
+		TRequestStatus *statusPtr(&aStatus);
+		User::RequestComplete(statusPtr, err);
+		return;
+		}
+	
+	SetActive();
+	}
+
+void CRefNativePluginActiveImpl::Install(RFile& aFileHandle, const TSecurityContext& aSecurityContext,
+											const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+											TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - install by file handle"));
+
+	CommonRequestPreamble(aSecurityContext, aInputParams, aOutputParams, aStatus);
+
+	TInt err;
+	if (iSilentInstall)
+		{
+		// Silent install does a few addtional checks on the package to see if is 
+		// signed and had the required capabilities. So we need to the get the 
+		// package component information with out installing it.
+		iFileHandle = &aFileHandle;
+		TRAP(err, iAsyncLauncher->GetComponentInfoL(*this, aFileHandle, *iInstallPrefs, *iComponentInfo, iStatus));
+		}
+	else
+		{
+		// Proceed with the normal installation.
+		TRAP(err, iAsyncLauncher->InstallL(*this, aFileHandle, *iInstallPrefs, iStatus));
+		iInstallRequest = ETrue;
+		}
+	
+	if (err != KErrNone)
+		{
+		TRequestStatus *statusPtr(&aStatus);
+		User::RequestComplete(statusPtr, err);
+		return;
+		}
+
+	SetActive();
+	}
+
+void CRefNativePluginActiveImpl::Uninstall(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+		  const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus)
+	{
+	TRAPD(err, UninstallL(aComponentId, aSecurityContext, aInputParams, aOutputParams, aStatus));
+	if (err != KErrNone)
+		{
+		TRequestStatus *statusPtr(&aStatus);
+		User::RequestComplete(statusPtr, err);
+		return;
+		}
+	SetActive();
+	}
+
+void CRefNativePluginActiveImpl::UninstallL(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+		  const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - uninstall"));
+	CommonRequestPreamble(aSecurityContext, aInputParams, aOutputParams, aStatus);
+    // Get UID for given component id
+	RSoftwareComponentRegistry scrSession;
+	User::LeaveIfError(scrSession.Connect());
+	CleanupClosePushL(scrSession);
+	
+	CPropertyEntry* propertyEntry = scrSession.GetComponentPropertyL(aComponentId, _L("CompUid"));
+	CleanupStack::PushL(propertyEntry);
+
+	CIntPropertyEntry* intPropertyEntry = dynamic_cast<CIntPropertyEntry *>(propertyEntry); 
+	
+	TRequestStatus *statusPtr(&aStatus);
+	if (intPropertyEntry == NULL)
+		{
+		DEBUG_PRINTF2(_L8("UID property for component %d was not found"), aComponentId);
+		User::RequestComplete(statusPtr, KErrNotFound);
+		return;
+		}
+
+	TUid objectId = TUid::Uid(intPropertyEntry->IntValue());
+	CleanupStack::PopAndDestroy(2, &scrSession);
+
+	iAsyncLauncher->UninstallL(*this, objectId, iStatus);
+	}
+
+void CRefNativePluginActiveImpl::Activate(TComponentId aComponentId, const TSecurityContext& /*aSecurityContext*/, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - activate"));
+	iStatus = KRequestPending;
+	aStatus = KRequestPending;
+	iClientStatus = &aStatus;
+
+	TRequestStatus* rs(&iStatus);
+	
+	Swi::RSisRegistryWritableSession sisRegSession;
+	TRAPD(err, 
+			User::LeaveIfError(sisRegSession.Connect());
+			sisRegSession.ActivateComponentL(aComponentId);
+			)
+	sisRegSession.Close();
+
+	User::RequestComplete(rs, err);
+	SetActive();
+	}
+
+void CRefNativePluginActiveImpl::Deactivate(TComponentId aComponentId, const TSecurityContext& /*aSecurityContext*/, TRequestStatus& aStatus)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - deactivate"));
+	iStatus = KRequestPending;
+	aStatus = KRequestPending;
+	iClientStatus = &aStatus;
+
+	TRequestStatus* rs(&iStatus);
+
+	Swi::RSisRegistryWritableSession sisRegSession;
+	TRAPD(err, 
+			User::LeaveIfError(sisRegSession.Connect());
+			sisRegSession.DeactivateComponentL(aComponentId);
+			)
+	sisRegSession.Close();
+
+	User::RequestComplete(rs, err);
+	SetActive();
+	}
+
+// SWI::MUiHandler implementation
+TInt CRefNativePluginActiveImpl::DisplayLanguageL(const Swi::CAppInfo& /*aAppInfo*/,const RArray<TLanguage>& /*aLanguages*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayLanguageL"));
+	return 0;
+	}
+
+TInt CRefNativePluginActiveImpl::DisplayDriveL(const Swi::CAppInfo& /*aAppInfo*/,TInt64 /*aSize*/, const RArray<TChar>& /*aDriveLetters*/, const RArray<TInt64>& /*aDriveSpaces*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayDriveL"));
+	return 0;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayUninstallL(const Swi::CAppInfo& /*aAppInfo*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayUninstallL"));
+	if (iDeclineOperation)
+		{
+		DEBUG_PRINTF(_L8("Reference native plugin - Received an option to decline operation - stopping uninstall"));
+		return EFalse;
+		}
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayTextL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TFileTextOption /*aOption*/, const TDesC& /*aText*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayTextL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayDependencyBreakL(const Swi::CAppInfo& /*aAppInfo*/, const RPointerArray<TDesC>& /*aComponents*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayDependencyBreakL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayApplicationsInUseL(const Swi::CAppInfo& /*aAppInfo*/, const RPointerArray<TDesC>& /*aAppNames*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayApplicationsInUseL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayQuestionL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TQuestionDialog /*aQuestion*/, const TDesC& /*aDes*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayQuestionL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayInstallL(const Swi::CAppInfo& /*aAppInfo*/, const CApaMaskedBitmap* /*aLogo*/, const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayInstallL"));
+
+	if (iDeclineOperation)
+		{
+		DEBUG_PRINTF(_L8("Reference native plugin - Received an option to decline operation - stopping install"));
+		return EFalse;
+		}
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayGrantCapabilitiesL(const Swi::CAppInfo& /*aAppInfo*/, const TCapabilitySet& /*aCapabilitySet*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayGrantCapabilitiesL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayUpgradeL(const Swi::CAppInfo& /*aAppInfo*/, const Swi::CAppInfo& /*aExistingAppInfo*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayUpgradeL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayOptionsL(const Swi::CAppInfo& /*aAppInfo*/, const RPointerArray<TDesC>& /*aOptions*/, RArray<TBool>& /*aSelections*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayOptionsL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplaySecurityWarningL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TSignatureValidationResult /*aSigValidationResult*/,
+						RPointerArray<CPKIXValidationResultBase>& /*aPkixResults*/, RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool /*aInstallAnyway*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplaySecurityWarningL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayOcspResultL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TRevocationDialogMessage /*aMessage*/, RPointerArray<TOCSPOutcome>& /*aOutcomes*/, 
+						RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/,TBool /*aWarningOnly*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayOcspResultL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::DisplayMissingDependencyL(const Swi::CAppInfo& /*aAppInfo*/, const TDesC& /*aDependencyName*/, TVersion /*aWantedVersionFrom*/,
+						TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayMissingDependencyL"));
+	return ETrue;
+	}
+
+TBool CRefNativePluginActiveImpl::HandleInstallEventL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallEvent /*aEvent*/, TInt /*aValue*/, const TDesC& /*aDes*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - HandleInstallEventL"));
+	return ETrue;
+	}
+
+void CRefNativePluginActiveImpl::HandleCancellableInstallEventL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallCancellableEvent /*aEvent*/, Swi::MCancelHandler& /*aCancelHandler*/,
+						TInt /*aValue*/,const TDesC& /*aDes*/)
+	{	
+	DEBUG_PRINTF(_L8("Reference native plugin - HandleCancellableInstallEventL"));
+	}
+
+void CRefNativePluginActiveImpl::DisplayCannotOverwriteFileL(const Swi::CAppInfo& /*aAppInfo*/, const Swi::CAppInfo& /*aInstalledAppInfo*/,const TDesC& /*aFileName*/)
+	{	
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayCannotOverwriteFileL"));
+	}
+
+void CRefNativePluginActiveImpl::DisplayErrorL(const Swi::CAppInfo& /*aAppInfo*/, Swi::TErrorDialog /*aType*/, const TDesC& /*aParam*/)
+	{
+	DEBUG_PRINTF(_L8("Reference native plugin - DisplayErrorL"));
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/refnativeplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* This class implements a test SIF plugin for native software
+*
+*/
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef REFNATIVEPLUGIN_H
+#define REFNATIVEPLUGIN_H
+
+#include <usif/sif/sifplugin.h>
+#include <usif/scr/screntries.h>
+#include <swi/msisuihandlers.h>
+#include <e32base.h>
+#include <e32std.h>
+
+namespace Swi
+{
+	class CAsyncLauncher;
+	class CInstallPrefs;
+}
+
+namespace Usif
+	{
+	
+	_LIT(KDeclineOperationOptionName, "SwiDeclineOperation");
+	// ECOM objects and CActive do not interact well - especially since SIFPlugin inherits from CBase
+	// and double C-inheritance is impossible. So, a separate class is used to drive the asynchronous interaction
+	// to the CAsyncLauncher
+	NONSHARABLE_CLASS(CRefNativePluginActiveImpl) : public CActive, public Swi::MUiHandler
+	{
+	public:
+		static CRefNativePluginActiveImpl* NewL();
+		~CRefNativePluginActiveImpl();
+
+		// CActive interface
+		void RunL();
+		void DoCancel();
+			
+		void Install(const TDesC& aFileName, const TSecurityContext& aSecurityContext,
+							const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+							TRequestStatus& aStatus);
+
+		void Install(RFile& aFileHandle, const TSecurityContext& aSecurityContext,
+							const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+							TRequestStatus& aStatus);
+							
+		void GetComponentInfo(const TDesC& aFileName, CComponentInfo& aComponentInfo, TRequestStatus& aStatus);
+
+		void GetComponentInfo(RFile& aFileHandle, CComponentInfo& aComponentInfo, TRequestStatus& aStatus);
+
+		void Uninstall(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+							const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams, 
+							TRequestStatus& aStatus);
+
+		void Activate(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+							TRequestStatus& aStatus);
+
+		void Deactivate(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+							TRequestStatus& aStatus);
+
+		// Swi::MUiHandler interface
+		TInt DisplayLanguageL(const Swi::CAppInfo& aAppInfo,const RArray<TLanguage>& aLanguages);
+		TInt DisplayDriveL(const Swi::CAppInfo& aAppInfo,TInt64 aSize, const RArray<TChar>& aDriveLetters,const RArray<TInt64>& aDriveSpaces);
+		TBool DisplayUninstallL(const Swi::CAppInfo& aAppInfo);
+		TBool DisplayTextL(const Swi::CAppInfo& aAppInfo,Swi::TFileTextOption aOption,const TDesC& aText);
+		TBool DisplayDependencyBreakL(const Swi::CAppInfo& aAppInfo, const RPointerArray<TDesC>& aComponents);
+		TBool DisplayApplicationsInUseL(const Swi::CAppInfo& aAppInfo, const RPointerArray<TDesC>& aAppNames);
+		TBool DisplayQuestionL(const Swi::CAppInfo& aAppInfo, Swi::TQuestionDialog aQuestion, const TDesC& aDes);
+		TBool DisplayInstallL(const Swi::CAppInfo& aAppInfo,const CApaMaskedBitmap* aLogo, const RPointerArray<Swi::CCertificateInfo>& aCertificates); 
+		TBool DisplayGrantCapabilitiesL(const Swi::CAppInfo& aAppInfo, const TCapabilitySet& aCapabilitySet);
+		TBool DisplayUpgradeL(const Swi::CAppInfo& aAppInfo, const Swi::CAppInfo& aExistingAppInfo);
+		TBool DisplayOptionsL(const Swi::CAppInfo& aAppInfo, const RPointerArray<TDesC>& aOptions,RArray<TBool>& aSelections);
+		TBool DisplaySecurityWarningL(const Swi::CAppInfo& aAppInfo, Swi::TSignatureValidationResult aSigValidationResult,
+									RPointerArray<CPKIXValidationResultBase>& aPkixResults, RPointerArray<Swi::CCertificateInfo>& aCertificates,TBool aInstallAnyway);
+		TBool DisplayOcspResultL(const Swi::CAppInfo& aAppInfo, Swi::TRevocationDialogMessage aMessage,RPointerArray<TOCSPOutcome>& aOutcomes, 
+									RPointerArray<Swi::CCertificateInfo>& aCertificates,TBool aWarningOnly);
+		TBool DisplayMissingDependencyL(const Swi::CAppInfo& aAppInfo, const TDesC& aDependencyName,TVersion aWantedVersionFrom,
+									TVersion aWantedVersionTo,TVersion aInstalledVersion);
+		TBool HandleInstallEventL(const Swi::CAppInfo& aAppInfo, Swi::TInstallEvent aEvent,TInt aValue = 0,const TDesC& aDes = KNullDesC);
+		void HandleCancellableInstallEventL(const Swi::CAppInfo& aAppInfo, Swi::TInstallCancellableEvent aEvent,Swi::MCancelHandler& aCancelHandler,
+									TInt aValue = 0,const TDesC& aDes=KNullDesC);
+		void DisplayCannotOverwriteFileL(const Swi::CAppInfo& aAppInfo, const Swi::CAppInfo& aInstalledAppInfo,const TDesC& aFileName);
+		void DisplayErrorL(const Swi::CAppInfo& aAppInfo,Swi::TErrorDialog aType,const TDesC& aParam);
+	private:
+		CRefNativePluginActiveImpl() : CActive(EPriorityStandard) {}
+		CRefNativePluginActiveImpl(const CRefNativePluginActiveImpl &);
+		CRefNativePluginActiveImpl & operator =(const CRefNativePluginActiveImpl &);
+		void ConstructL();
+		void CommonRequestPreamble(const TSecurityContext& aSecurityContext, const COpaqueNamedParams& aInputParams, 
+									COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus);
+		void UninstallL(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+						const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams, 
+						TRequestStatus& aStatus);
+						
+		TComponentId GetLastInstalledComponentIdL();
+		TBool NeedUserCapabilityL();
+		void ProcessSilentInstallL();
+	private:
+		Swi::CAsyncLauncher* iAsyncLauncher;
+		Swi::CInstallPrefs* iInstallPrefs;
+		TRequestStatus* iClientStatus;
+		const COpaqueNamedParams* iInputParams;
+		COpaqueNamedParams* iOutputParams;
+		CComponentInfo* iComponentInfo;
+		TFileName iFileName;
+		RFile* iFileHandle; // FileHandle is not owned by the plug-in
+		TBool iDeclineOperation; // Used for plugin options - optionally specifies that the operation will not be confirmed at the first callback
+		TBool iInstallRequest; // Used to identify the type of the current requst in RunL() so we know if the id of an installed component should be sent
+		TBool iSilentInstall; // Used to identify a silent install
+		};
+
+
+	NONSHARABLE_CLASS(CRefNativePlugin) : public CSifPlugin
+		{
+	public:
+		static CRefNativePlugin* NewL();
+		~CRefNativePlugin();
+	
+		// MSIFPlugin interface
+		void GetComponentInfo(const TDesC& aFileName, const TSecurityContext& aSecurityContext,
+							  CComponentInfo& aComponentInfo, TRequestStatus& aStatus);
+
+		void GetComponentInfo(RFile& aFileHandle, const TSecurityContext& aSecurityContext,
+							  CComponentInfo& aComponentInfo, TRequestStatus& aStatus);
+		
+		void Install(const TDesC& aFileName, const TSecurityContext& aSecurityContext,
+							const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+							TRequestStatus& aStatus);
+
+		void Install(RFile& aFileHandle, const TSecurityContext& aSecurityContext,
+							const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+							TRequestStatus& aStatus);
+
+		virtual void Uninstall(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+								const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+								TRequestStatus& aStatus);
+
+		virtual void Activate(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+								TRequestStatus& aStatus);
+
+		virtual void Deactivate(TComponentId aComponentId, const TSecurityContext& aSecurityContext,
+								TRequestStatus& aStatus);
+
+		void CancelOperation();
+	private:
+		CRefNativePlugin() {}
+		void ConstructL();
+		CRefNativePlugin(const CRefNativePlugin &);
+		CRefNativePlugin & operator =(const CRefNativePlugin &);
+	private:
+		CRefNativePluginActiveImpl *iImpl;
+		};
+	} // end namespace Usif
+
+#endif // REFNATIVEPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/refnativeplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Project specification file for SIF plugin for native software
+*
+*/
+
+
+/**
+ @file
+ @test
+*/
+
+TARGET			refnativeplugin.dll
+TARGETTYPE		PLUGIN
+
+UID				0x10009D8D 0x10285BC3
+
+CAPABILITY		ProtServ TrustedUI ReadUserData WriteDeviceData
+
+SOURCEPATH		.
+SOURCE			refnativeplugin.cpp
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+START RESOURCE	10285BC3.rss
+	TARGET refnativeplugin.rsc
+END
+LIBRARY			euser.lib sishelper.lib sif.lib scrclient.lib
+LIBRARY			sisregistryclient.lib
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/sisregistrywritablesession.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,214 @@
+/*
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* RSisRegistryWritableSession - restricted client registry session interface
+*
+*/
+
+
+/**
+ @file 
+ @internalTechnology
+ @released
+*/
+
+#ifndef __SISREGISTRYWRITABLESESSION_H__
+#define __SISREGISTRYWRITABLESESSION_H__
+
+#include <e32std.h>
+#include <swi/sisregistrysession.h>
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <usif/usifcommon.h>
+#endif
+namespace Swi
+{
+class CApplication;
+class CSisRegistryPackage;
+
+namespace Sis
+	{
+	class CController;
+	}
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+using Usif::TComponentId;
+using Usif::TScomoState;
+
+class CSoftwareTypeRegInfo;
+#endif
+
+class RSisRegistryWritableSession : public RSisRegistrySession
+	{
+public:
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	/**
+	 * Starts a transaction with SCR for the mutable operations of this session.
+	 * The APIs that this transaction covers are AddEntryL, UpdateEntryL and DeleteEntryL.
+	 * Note that this transaction has no relation with the transaction ID (aTransactionID)
+	 * parameter being supplied to the mutable APIs.
+	 */
+	IMPORT_C void CreateTransactionL();
+
+	/**
+	 * Commits the changes performed in the SCR after the call to BeginTransactionL.
+	 */
+	IMPORT_C void CommitTransactionL();
+
+	/**
+	 * Discards the changes performed in the SCR after the call to BeginTransactionL.
+	 */
+	IMPORT_C void RollbackTransactionL();
+#endif
+
+	/**
+	 * Adds a registry entry representing this package
+	 *
+	 * @param aApplication The application description provided by Swi
+	 * @param aController The controller in a buffer 
+	 * @param aTransactionID The TransactionID for IntegrityServices provided
+	 *		  				 by Swis of TInt64 type
+	 *
+	 */
+	IMPORT_C void AddEntryL(const CApplication& aApplication, const TDesC8& aController, TInt64 aTransactionID);
+
+	/**
+	 * Updates the registry entry representing this package
+	 *
+	 * @param aApplication The application description provided by Swi
+	 * @param aController The controller in a buffer 
+	 * @param aTransactionID The TransactionID for IntegrityServices provided
+	 *		  				 by Swis of TInt64 type
+	 *
+	 */
+	IMPORT_C void UpdateEntryL(const CApplication& aApplication, const TDesC8& aController, TInt64 aTransactionID);
+	
+	/**
+	 * Deletes the entry from the registry represented by the given package
+	 *
+	 * @param aPackage The package to search for
+	 * @param aTransactionID The TransactionID for IntegrityServices provided
+	 *		  				 by Swis of TInt64 type
+	 *
+	 */
+	IMPORT_C void DeleteEntryL(const CSisRegistryPackage& aPackage, TInt64 aTransactionID);
+
+	/**
+	 * Notification to registry that a drive has been mounted
+	 *
+	 * @param aDrive Drive number; 	 
+	 * 
+	 * @note valid value are between 0 and KMaxDrives - 1 inclusive
+	 * 0 stands for A drive and  KMaxDrives - 1 for Z
+	 *
+	 */
+	IMPORT_C void AddDriveL(const TInt aDrive);
+	
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	/**
+	 * Notification to registry that a drive has been dismounted
+	 *
+	 * @param aDrive Drive as a number; 
+	 *
+	 * @note  valid value are between 0 and KMaxDrives - 1 inclusive
+	 * 0 stands for A drive and  KMaxDrives - 1 for Z
+	 *
+	 */
+	IMPORT_C void RemoveDriveL(const TInt aDrive);
+
+	/**
+	 * Notification to the registry that Software Installation has been rolled
+	 * back and the cache needs to be regenerated from the contents on disk.
+	 */
+	IMPORT_C void RegenerateCacheL();
+#endif
+	
+	/**
+ 	* Returns ETrue if any ROM stub in the filesystem has the package uid specified
+ 	* in aPackageId 
+ 	* With the addition of SA upgrades to ROM, a package may be both in ROM, upgraded 
+ 	* on another drive and this method can be used to check for the presence 
+ 	* of an upgraded ROM package.
+ 	*
+ 	*
+ 	* @param aPackageId		Package Id to be searched in the ROM stub files.
+ 	*
+ 	* @return ETrue if it can find the aPackageId in any of the ROM stub SIS.
+ 	*         EFalse otherwise
+ 	*/
+	IMPORT_C TBool PackageExistsInRomL(const TUid& aPackageId);
+	
+
+	
+	/**
+	* Gets all the eclipsable file's entries from the ROM stub file of a ROM based package.
+	*
+	* @param aUid		Package UId to identify the right stub file.
+	*
+	* @param aFiles		A pointer array of file names to be populated.
+	*
+	*/
+	IMPORT_C void GetFilesForRomApplicationL(const TUid& aPackageId, RPointerArray<HBufC>& aFiles);
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	/**
+	* Activates the component identified by the supplied parameter.
+	*
+	* @param aComponentId		Identifies the installed component, which is to be activated.
+	*
+	*/
+	IMPORT_C void ActivateComponentL(TComponentId aComponentId);
+
+	/**
+	* Deactivates the component identified by the supplied parameter.
+	*
+	* @param aComponentId		Identifies the installed component, which is to be deactivated.
+	*
+	*/
+	IMPORT_C void DeactivateComponentL(TComponentId aComponentId);
+
+	/**
+	 * Adds a registry entry representing a package containing a Layered Execution Environment
+	 *
+	 * @param aApplication The application description provided by Swi
+	 * @param aController The controller in a buffer
+	 * @param aSwTypeRegInfoArray The array of the software types to be registered
+	 * @param aTransactionID The TransactionID for IntegrityServices provided by Swis of TInt64 type
+	 *
+	 */
+	IMPORT_C void AddEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
+
+	/**
+	 * Updates the registry entry representing a package containing a Layered Execution Environment.
+	 * The SISRegistryServer checks if the registration info passed in aSwTypeRegInfoArray matches
+	 * the data passed during the installation of the base package. If they differ the installation terinates.
+	 * Hence, this upgrade package may upgarde the LEE but cannot change its registration data.
+	 *
+	 * @param aApplication The application description provided by Swi
+	 * @param aController The controller in a buffer
+	 * @param aSwTypeRegInfoArray The array of the software types to be verified against the already registered base package
+	 * @param aTransactionID The TransactionID for IntegrityServices provided by Swis of TInt64 type
+	 *
+	 */
+	IMPORT_C void UpdateEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
+
+private:
+	void SetComponentStateL(TComponentId aComponentId, TScomoState aState);
+#endif
+	void AddEntryImplL(TInt aMessage, const CApplication& aApplication, const TDesC8& aController, TInt64 aTransactionID, TIpcArgs& aIpcArgs);
+	void UpdateEntryImplL(TInt aMessage, const CApplication& aApplication, const TDesC8& aController, TInt64 aTransactionID, TIpcArgs& aIpcArgs);
+	};
+
+} // namespace
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/refnativeplugin/usiflog.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,45 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Implements print functions for the Universal Software Install Framework components.
+*
+*/
+
+
+/**
+ @file 
+ @internalComponent 
+ @released
+*/
+ 
+#ifndef USIFLOG_H
+#define USIFLOG_H
+
+#include <scs/securitylog.h>
+
+namespace Usif
+	{
+	 _LIT8(KComponentName, "[USIF]");
+	   
+	#define DEBUG_PRINTF(a) {SEC_DEBUG_PRINTF(KComponentName, a);}
+	#define DEBUG_PRINTF2(a, b) {SEC_DEBUG_PRINTF2(KComponentName, a, b);}
+	#define DEBUG_PRINTF3(a, b, c) {SEC_DEBUG_PRINTF3(KComponentName, a, b, c);}
+	#define DEBUG_PRINTF4(a, b, c, d) {SEC_DEBUG_PRINTF4(KComponentName, a, b, c, d);}
+	#define DEBUG_PRINTF5(a, b, c, d, e) {SEC_DEBUG_PRINTF5(KComponentName, a, b, c, d, e);}
+	
+	#define DEBUG_CODE_SECTION(a) {SEC_DEBUG_CODE_SECTION(a);}
+	 
+	}	// End of namespace StreamAccess
+
+#endif // USIFLOG_H
--- a/appfw/apparchitecture/tef/scripts/apparctest_T_AppListFileUpdate.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_T_AppListFileUpdate.script	Thu Jun 24 13:52:58 2010 +0100
@@ -37,6 +37,6 @@
 PRINT Run T_AppListFileUpdate Apparc test
 //
 LOAD_SUITE ApparcTestServer
-RUN_TEST_STEP 500 ApparcTestServer T_AppListFileUpdate
+RUN_TEST_STEP 800 ApparcTestServer T_AppListFileUpdate
 
 END_TESTCASE API-APPFWK-APPARC-0032
--- a/appfw/apparchitecture/tef/scripts/apparctest_T_RApaLsSession.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_T_RApaLsSession.script	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -35,6 +35,6 @@
 DELAY 5000
 //
 LOAD_SUITE ApparcTestServer
-RUN_TEST_STEP 100 ApparcTestServer T_RApaLsSession
+RUN_TEST_STEP 500 ApparcTestServer T_RApaLsSession
 
 END_TESTCASE API-APPFWK-T-RApaLsSessionTestStep-TestAppInfo1-0001
--- a/appfw/apparchitecture/tef/scripts/apparctest_T_RuleBasedLaunching.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_T_RuleBasedLaunching.script	Thu Jun 24 13:52:58 2010 +0100
@@ -27,6 +27,6 @@
 PRINT Run T_RuleBasedLaunching Apparc test
 //
 LOAD_SUITE ApparcTestServer
-RUN_TEST_STEP 100 ApparcTestServer T_RuleBasedLaunching
+RUN_TEST_STEP 200 ApparcTestServer T_RuleBasedLaunching
 
 END_TESTCASE API-APPFWK-APPARC-0023
--- a/appfw/apparchitecture/tef/scripts/apparctest_T_Serv2.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_T_Serv2.script	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -31,6 +31,6 @@
 PRINT Run T_Serv2 Apparc test
 //
 LOAD_SUITE ApparcTestServer
-RUN_TEST_STEP 100 ApparcTestServer T_Serv2
+RUN_TEST_STEP 400 ApparcTestServer T_Serv2
 
 END_TESTCASE API-APPFWK-T-Serv2Step-AppInfoTest1-0001
\ No newline at end of file
--- a/appfw/apparchitecture/tef/scripts/apparctest_T_Services.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_T_Services.script	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -33,6 +33,6 @@
 DELAY 5000
 //
 LOAD_SUITE ApparcTestServer
-RUN_TEST_STEP 100 ApparcTestServer T_Services
+RUN_TEST_STEP 300 ApparcTestServer T_Services
 
 END_TESTCASE API-APPFWK-T-RApaLsSessionTestStep-TestServiceDiscovery1L-0001
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_t_clientnotif.script	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//
+PRINT Run T_ClientNotif Apparc test 
+//
+LOAD_SUITE ApparcTestServer
+RUN_TEST_STEP 400 ApparcTestServer T_ClientNotif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_t_forcereg.script	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//
+PRINT Run T_ForceReg Apparc test 
+//
+LOAD_SUITE ApparcTestServer
+RUN_TEST_STEP 100 ApparcTestServer T_ForceReg
\ No newline at end of file
--- a/appfw/apparchitecture/tef/scripts/apparctest_t_mimecontentpolicy.script	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_t_mimecontentpolicy.script	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -19,7 +19,7 @@
 //! @SYMTestCaseDesc 		Tests IsClosedType() method for different mime types
 //! @SYMTestPriority 		High
 //! @SYMTestStatus 		3. Released
-//! @SYMTestActions 		Closed types are the mime types which are listed in the ApfMimeContentPolicy.rss file.
+//! @SYMTestActions 		Closed types are the mime types which are listed in the 10003a3f repository.
 //!				Calls CApfMimeContentPolicy::IsClosedType(const TDesC& aMimeType); for different closed and non-closed mime types.
 //! @SYMTestExpectedResults 	The test checks whether IsClosedType returns ETrue for the Closed Mime types and EFalse for non-closed Mime types
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_t_nonnativetest.script	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//
+PRINT Run T_NonNativeTest Apparc test 
+//
+LOAD_SUITE ApparcTestServer
+RUN_TEST_STEP 100 ApparcTestServer T_NonNativeTest
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/scripts/apparctest_t_updateapplist.script	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//
+PRINT Run T_UpdateAppList Apparc test 
+//
+LOAD_SUITE ApparcTestServer
+RUN_TEST_STEP 100 ApparcTestServer T_UpdateAppList
\ No newline at end of file
--- a/appfw/apparchitecture/tef/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/scripts/emulator/apparctest_CACHE_OFF_run.bat	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/emulator/apparctest_CACHE_OFF_run.bat	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -75,6 +75,11 @@
 call :test T_Wgnam 
 call :test T_WindowChaining 
 ::call :test T_RecUpgrade  This test can not run on emulator as it requires loading, unloading and deletion of a plug-in and Windows OS don’t allow deletion of loaded binaries 
+call :test T_UpdateAppList
+call :test T_ForceReg
+call :test T_ClientNotif
+call :test T_NonNativeTest
+
 
 call sysstart_apparc_run.bat
 type \epoc32\winscw\c\logs\testexecute\sysstart_apparctest_summary.txt >> %APPARCTEST_SUMMARY%
--- a/appfw/apparchitecture/tef/scripts/emulator/apparctest_run.bat	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/emulator/apparctest_run.bat	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -78,6 +78,10 @@
 call :test T_Wgnam 
 call :test T_WindowChaining 
 ::call :test T_RecUpgrade  This test can not run on emulator as it requires loading, unloading and deletion of a plug-in and Windows OS don’t allow deletion of loaded binaries 
+call :test T_UpdateAppList
+call :test T_ForceReg
+call :test T_ClientNotif
+call :test T_NonNativeTest
 
 call sysstart_apparc_run.bat
 type \epoc32\winscw\c\logs\testexecute\sysstart_apparctest_summary.txt >> %APPARCTEST_SUMMARY%
--- a/appfw/apparchitecture/tef/scripts/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/scripts/hardware/apparctest_run.bat	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/scripts/hardware/apparctest_run.bat	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -62,6 +62,11 @@
 testexecute.exe z:\apparctest\apparctest_t_Wgnam.script
 testexecute.exe z:\apparctest\apparctest_t_WindowChaining.script
 testexecute.exe z:\apparctest\apparctest_t_RecUpgrade.script
+testexecute.exe z:\apparctest\apparctest_t_UpdateAppList.script
+testexecute.exe z:\apparctest\apparctest_t_forcereg.script
+testexecute.exe z:\apparctest\apparctest_t_clientnotif.script
+testexecute.exe z:\apparctest\apparctest_t_nonnativetest.script
+
 
 :: *******************************************************************
 :: This batch file is used to run tests on 9.3 and higher versions.
--- a/appfw/apparchitecture/tef/scripts/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c56
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	serverapp_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+// SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp2.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c58
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	serverapp2_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+//SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp3.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp3.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c57
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	serverapp3_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+//SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp4.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp4.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c76
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	serverapp4_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+//SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp6.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp6.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c55
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application localisable resource file
+resource  	serverapp_loc.RSS
+start resource 	serverapp_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+
+START RESOURCE	serverapp6_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+//SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/serverapp7.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,57 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	serverapp7.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10004c54
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application localisable resource file
+resource  	serverapp_loc.RSS
+start resource 	serverapp_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+START RESOURCE	serverapp7_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+// SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/tRuleBasedApps/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -46,11 +46,11 @@
 			
 START RESOURCE      	tRuleBasedApp1.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE		tRuleBasedApp1_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -46,11 +46,11 @@
 			
 START RESOURCE      	tRuleBasedApp2.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE		tRuleBasedApp2_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -46,11 +46,11 @@
 			
 START RESOURCE      	tRuleBasedApp3.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE		tRuleBasedApp3_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -45,11 +45,11 @@
 			
 START RESOURCE      	tRuleBasedApp4.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE		tRuleBasedApp4_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_clientnotifstep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,851 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include "t_clientnotifstep.h"
+#include <e32base.h>
+#include <e32cmn.h>
+#include "T_SisFileInstaller.h"
+#include <apgtask.h>
+#include <apgnotif.h>
+
+_LIT(KSimpleAppSisFile, "z:\\apparctest\\apparctestsisfiles\\SimpleApparcTestApp.sis");
+_LIT(KSimpleAppComponent, "SimpleApparcTestApp");
+
+_LIT(KTestMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleApps.sis");
+_LIT(KTestMultipleAppsComponent, "TestMultipleApps");
+
+_LIT(KTestMultipleAppsDowngradeSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleAppsDowngrade.sis");
+_LIT(KTestMultipleAppsDowngradeComponent, "TestMultipleApps");
+
+_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis");
+_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone");
+
+const TUid KUidSimpleApp={0x12008ACE};
+const TUid KUidMultipleApp1={0x102032AB};
+const TUid KUidMultipleApp2={0x10208183};
+const TUid KUidMultipleApp3={0x10208184};
+const TUid KUidTstAppStandalone={10};
+
+CT_ClientNotifStep::~CT_ClientNotifStep()
+/**
+   Destructor
+ */
+    {
+    }
+
+CT_ClientNotifStep::CT_ClientNotifStep()
+/**
+   Constructor
+ */
+    {
+    // Call base class method to set up the human readable name for logging
+    SetTestStepName(KT_ClientNotifStep);
+    }
+
+TVerdict CT_ClientNotifStep::doTestStepPreambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_ClientNotifStep::doTestStepPostambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    return TestStepResult();
+    }
+    
+    
+TVerdict CT_ClientNotifStep::doTestStepL()
+{
+    RunTestCases();
+    return TestStepResult();
+}
+
+
+void CT_ClientNotifStep::RunTestCases()
+    {
+    RTestableApaLsSession ls;
+    User::LeaveIfError(ls.Connect());
+    
+    TApaAppInfo info;
+    TUid uid = {0x12008ACE};     
+    TInt err = ls.GetAppInfo(info, uid);
+    if(err == KErrNone)
+        {       
+        CSisFileInstaller sisFileInstaller;
+        sisFileInstaller.UninstallSisL(KSimpleAppComponent);
+        }
+   
+    //DONT_CHECK is used because when an application is installed the updated application
+    //information is added in the session objects. This causes increase of memory at server side.
+    //As there can be multiple applications registered with apparc for applist change notifications,
+    //its not possible to clear the information in all the session objects.
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifInitialApplistCreation(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifLanguageChange(ls), NO_CLEANUP);     
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifSingleAppInstallation(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifMultipleAppInstallation(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifUpgradeApp(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifMultipleInstallations(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifWithoutSetNotify(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifOnPackageUpgrade(ls), NO_CLEANUP);  
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifOnPackageDowngrade(ls), NO_CLEANUP);        
+    ls.Close();
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests apparc will not provide updated application information when the application list
+                            created first time after device bootup.
+                            
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Wait till the applist got created after phone boot.
+                            2. Retrieve the updated application information and check it is empty.
+                            
+                             
+   @SYMTestExpectedResults Apparc will not provide updated application information.
+ */
+void CT_ClientNotifStep::TestClientNotifInitialApplistCreation(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation started............"));    
+  
+    TRequestStatus applistChangeStatus;
+    TRequestStatus applistCreationStatus;
+    //Register with apparc for applist change notification
+    aLs.SetNotify(ETrue, applistChangeStatus);
+    aLs.RegisterListPopulationCompleteObserver(applistCreationStatus);    
+    User::WaitForRequest(applistCreationStatus);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d expected: 0"), updatedAppsInfo.Count()); 
+    TEST(updatedAppsInfo.Count() == 0);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo   
+    INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation ended............")); 
+    }
+
+
+void CT_ClientNotifStep::ChangeLocaleL(TLanguage aLanguage)
+    {
+    _LIT(KLitLanguageLocaleDllNameBase, "elocl_lan");
+    //Region and collation code values are hard coded, as the check, after changing the locale is made for the language only.
+    _LIT(KLitRegionLocaleDllNameBase, "elocl_reg.826");        
+    _LIT(KLitCollationLocaleDllNameBase, "elocl_col.001");
+    _LIT(ThreeDigExt,".%03d");
+    TExtendedLocale localeDll;    
+    const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+    TBuf<16> languageLocaleDllName(KLitLanguageLocaleDllNameBase);  
+    languageLocaleDllName.AppendFormat(ThreeDigExt, aLanguage);
+    TBuf<16> regionLocaleDllName(KLitRegionLocaleDllNameBase);  
+    TBuf<16> collationLocaleDllName(KLitCollationLocaleDllNameBase);  
+    // Try to load the locale dll
+    TInt error=localeDll.LoadLocale(languageLocaleDllName, regionLocaleDllName, collationLocaleDllName);
+        
+    if (error==KErrNotFound)
+        {
+        // Locale dll is not found for the asked language. 
+        ERR_PRINTF2(_L("Failed to find the locale dll for %d"), aLanguage);
+        }
+           
+    User::LeaveIfError(error);
+    localeDll.SaveSystemSettings();
+    }
+
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests apparc will not provide updated application information when the application list
+                            updated due phone language change.
+                            
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Wait till the applist got updated after phone language change.
+                            2. Retrieve the updated application information and check it is empty.
+                            
+                             
+   @SYMTestExpectedResults Apparc will not provide updated application information.
+ */
+void CT_ClientNotifStep::TestClientNotifLanguageChange(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestClientNotifLanguageChange started............"));    
+  
+    TRequestStatus applistChangeStatus;
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    //Change language
+    ChangeLocaleL(ELangGerman);    
+    User::WaitForRequest(applistChangeStatus);
+
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    TEST(updatedAppsInfo.Count() == 0);
+    
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    ChangeLocaleL(ELangEnglish);
+    User::WaitForRequest(applistChangeStatus);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo   
+    INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation ended............")); 
+    }
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information when single application is installed 
+                            and uninstalled.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file which has single application and waits till applist is changed.
+                            2. Checks the updated information provided by apparc is as expected.
+                            3. Uninstalls the component installed in Step 1
+                            4. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.,
+ */
+void CT_ClientNotifStep::TestClientNotifSingleAppInstallation(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestSingleAppInstallation started............"));    
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+ 
+    INFO_PRINTF1(_L("Installing single application"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile);
+    sisInstaller.InstallSisL(KSimpleAppSisFile);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.
+    TEST(updatedAppsInfo.Count()== 1);
+    TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is available in the applist. 
+    TApaAppInfo appInfo;
+    TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNone);
+    
+    INFO_PRINTF1(_L("Unnstalling single application"));        
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KSimpleAppComponent);
+    User::WaitForRequest(applistChangeStatus);  
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 1);
+    TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    
+    //Check the application is not available in the applist.    
+    TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNotFound);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestSingleAppInstallation ended............")); 
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information when multiple applications are installed 
+                            and uninstalled.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file which has multiple applications and waits till applist is changed.
+                            2. Checks the updated information provided by apparc is as expected.
+                            3. Uninstalls the component installed in Step 1
+                            4. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+  */
+   
+void CT_ClientNotifStep::TestClientNotifMultipleAppInstallation(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestMultipleAppInstallation started............"));
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+    
+    INFO_PRINTF1(_L("Installing multiple applications"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsSisFile);
+    User::WaitForRequest(applistChangeStatus);
+ 
+    //Get the updated application information from apparc.    
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);    
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 3);
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is available in the applist.    
+    TApaAppInfo appInfo;
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);
+    
+    INFO_PRINTF1(_L("Uninstalling multiple applications"));    
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KTestMultipleAppsComponent);
+    User::WaitForRequest(applistChangeStatus); 
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    TEST(updatedAppsInfo.Count()== 3);
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    
+    //Check the application is not available in the applist.     
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestMultipleAppInstallation ended............"));    
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information when an applications is
+                            upgraded.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Checks whether upgrading application exists in applist.
+                            2. Installs a sis file which upgrades  existing applications and waits till applist is changed.
+                            2. Checks the updated information provided by apparc is as expected.
+                            3. Uninstalls the component installed in Step 2
+                            4. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+  */
+void CT_ClientNotifStep::TestClientNotifUpgradeApp(RTestableApaLsSession &aLs)
+{
+    INFO_PRINTF1(_L("TestClientNotifUpgradeApp started............"));    
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+ 
+    INFO_PRINTF1(_L("Check the application is present before upgrade")); 
+    //Check the application is available in the applist. 
+    TApaAppInfo appInfo;
+    TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone);
+    
+    INFO_PRINTF1(_L("Installing upgrade application"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile);
+    sisInstaller.InstallSisL(KTstAppStandAloneSisFile);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.
+    TEST(updatedAppsInfo.Count()== 1);
+    TEST(updatedAppsInfo[0].iAppUid == KUidTstAppStandalone);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is available in the applist. 
+    TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone);
+    
+    INFO_PRINTF1(_L("Unnstalling upgrade application"));        
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KTstAppStandAloneComponent);
+    User::WaitForRequest(applistChangeStatus);  
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 1);
+    TEST(updatedAppsInfo[0].iAppUid == KUidTstAppStandalone);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is still available in the applist.    
+    TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestClientNotifUpgradeApp ended............"));     
+}
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information when there are multiple installations
+                            happened before the clients requests for updated application information.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file and waits till applist is changed.
+                            2. Installs another sis file and waits till applist is changed.
+                            3. Checks the updated information provided by apparc is as expected.
+                            4. Uninstalls the component installed in Step 1 and waits till applist is changed.
+                            5. Uninstalls the component installed in Step 2 and waits till applist is changed.                            
+                            6. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+  */
+void CT_ClientNotifStep::TestClientNotifMultipleInstallations(RTestableApaLsSession &aLs)
+{
+    INFO_PRINTF1(_L("TestClientNotifMultipleInstallations started............"));    
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+ 
+    INFO_PRINTF1(_L("Installing first sis file"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile);
+    sisInstaller.InstallSisL(KSimpleAppSisFile);
+    User::WaitForRequest(applistChangeStatus);
+    
+    INFO_PRINTF1(_L("Installing second sis file")); 
+    applistChangeStatus=KRequestPending;    
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsSisFile);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installations"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.
+    TEST(updatedAppsInfo.Count()== 4);
+    TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+    TEST(updatedAppsInfo[3].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the applications is available in the applist. 
+    TApaAppInfo appInfo;    
+    TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);
+    
+    INFO_PRINTF1(_L("Unnstalling first component"));        
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KSimpleAppComponent);
+    User::WaitForRequest(applistChangeStatus);  
+    
+    INFO_PRINTF1(_L("Unnstalling second component"));        
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KTestMultipleAppsComponent);
+    User::WaitForRequest(applistChangeStatus);  
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 4);
+    TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    TEST(updatedAppsInfo[3].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[3].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    
+    //Check the applications are not available in the applist. 
+    TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestClientNotifMultipleInstallations ended............"));     
+}
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests apparc will not provide updated application information if SetNotify is not called
+                            on an apparc session. Apparc only maintains updated application information with the sessions
+                            which actually requested SetNotify and not yet called UpdatedAppsInfoL API.
+                            
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file which has single application and waits till applist is changed.
+                            2. Retrieves the updated applist from different apparc session and checks the list is empty.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+ */
+void CT_ClientNotifStep::TestClientNotifWithoutSetNotify(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestClientNotifWithoutSetNotify started............"));    
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+ 
+    INFO_PRINTF1(_L("Installing application"));     
+    sisInstaller.InstallSisAndWaitForAppListUpdateL(KSimpleAppSisFile);
+    
+    //Get the updated application information from apparc.
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.
+    TEST(updatedAppsInfo.Count()== 0);
+    
+    INFO_PRINTF1(_L("Unnstalling application"));        
+    sisInstaller.UninstallSisAndWaitForAppListUpdateL(KSimpleAppComponent);
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 0);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestClientNotifWithoutSetNotify ended............")); 
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information a component is upgraded.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file which has 2 applications and waits till applist is changed.
+                            2. Checks the updated information provided by apparc is as expected.
+                            3. Upgrades the component which is installed in Step 1 which has one more application.
+                            4. Checks the updated information provided by apparc is as expected.
+                            3. Uninstalls the component installed in Step 3
+                            4. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+  */
+   
+void CT_ClientNotifStep::TestClientNotifOnPackageUpgrade(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestClientNotifOnPackageUpgrade started............"));
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+    
+    INFO_PRINTF1(_L("Installing sis file which has 2 applications"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsDowngradeSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsDowngradeSisFile);
+    User::WaitForRequest(applistChangeStatus);
+ 
+    //Get the updated application information from apparc.    
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);    
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 2);
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);    
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is available in the applist.    
+    TApaAppInfo appInfo;
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);
+    
+ 
+    INFO_PRINTF1(_L("Installing upgrade sis file which has 3 applications"));   
+    applistChangeStatus=KRequestPending;    
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsSisFile);
+    User::WaitForRequest(applistChangeStatus);
+ 
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();    
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 3);
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);     
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+    //Check the application is available in the applist.    
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone);    
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);
+    
+    INFO_PRINTF1(_L("Uninstalling applications ............"));    
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KTestMultipleAppsComponent);
+    User::WaitForRequest(applistChangeStatus); 
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    TEST(updatedAppsInfo.Count()== 3);
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    
+    //Check the application is not available in the applist.     
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestMultipleAppInstallation ended............"));    
+    }
+
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc provides updated application information a component is upgraded.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Installs a sis file which has 3 applications and waits till applist is changed.
+                            2. Checks the updated information provided by apparc is as expected.
+                            3. Degrades the component which is installed in Step 1 which has only 2 applications.
+                            4. Checks the updated information provided by apparc is as expected.
+                            3. Uninstalls the component installed in Step 3
+                            4. Checks the updated information provided by apparc is as expected.
+                            
+                             
+   @SYMTestExpectedResults Apparc provides updated application information.
+  */
+   
+void CT_ClientNotifStep::TestClientNotifOnPackageDowngrade(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestClientNotifOnPackageDowngrade started............"));
+    CSisFileInstaller sisInstaller;
+    TRequestStatus applistChangeStatus;
+    
+    INFO_PRINTF1(_L("Installing sis file which has 3 applications"));     
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsSisFile);
+    User::WaitForRequest(applistChangeStatus);
+ 
+    //Get the updated application information from apparc.    
+    RArray<TApaAppUpdateInfo> updatedAppsInfo;
+    CleanupClosePushL(updatedAppsInfo);    
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 3);
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent);     
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+    
+
+    //Check the application is available in the applist.    
+    TApaAppInfo appInfo;
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone);    
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);
+    
+ 
+    INFO_PRINTF1(_L("Installing sis file which has only 2 applications"));   
+    applistChangeStatus=KRequestPending;    
+    aLs.SetNotify(EFalse, applistChangeStatus);
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsDowngradeSisFile);
+    sisInstaller.InstallSisL(KTestMultipleAppsDowngradeSisFile);
+    User::WaitForRequest(applistChangeStatus);
+ 
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();    
+    INFO_PRINTF1(_L("Retrieving updated application information after installation"));
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); 
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo.Count()== 3);
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);     
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent);    
+    TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent);
+
+    //Check the application is not available in the applist.    
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound);
+    
+    //Check the application is available in the applist.    
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone);    
+
+    
+    INFO_PRINTF1(_L("Uninstalling applications"));    
+    applistChangeStatus=KRequestPending;
+    aLs.SetNotify(EFalse, applistChangeStatus);    
+    sisInstaller.UninstallSisL(KTestMultipleAppsDowngradeComponent);
+    User::WaitForRequest(applistChangeStatus); 
+    
+    //Get the updated application information from apparc.    
+    updatedAppsInfo.Reset();
+    INFO_PRINTF1(_L("Retrieving updated application information after uninstallation"));    
+    aLs.UpdatedAppsInfoL(updatedAppsInfo);
+    INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count());
+    TEST(updatedAppsInfo.Count()== 2);
+    
+    //Check the information provided by apparc is what is expected.    
+    TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp2);
+    TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent);    
+    TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp3);
+    TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent);
+    
+    //Check the application is not available in the applist.     
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound);
+    TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound);
+    
+    CleanupStack::PopAndDestroy(); //updatedAppsInfo
+    INFO_PRINTF1(_L("TestClientNotifOnPackageDowngrade ended............"));    
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_clientnotifstep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,60 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#if (!defined __T_CLIENTNOTIF_H__)
+#define __T_CLIENTNOTIF_H__
+
+
+#include <test/testexecutestepbase.h>
+
+class RTestableApaLsSession;
+
+
+/*Tests force registration functionality */
+
+class CT_ClientNotifStep : public CTestStep 
+    {
+public:
+    CT_ClientNotifStep();
+    ~CT_ClientNotifStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();
+    virtual TVerdict doTestStepL();
+    
+private:
+    void RunTestCases();
+    void TestClientNotifInitialApplistCreation(RTestableApaLsSession &aLs);
+    void ChangeLocaleL(TLanguage aLanguage);    
+    void TestClientNotifLanguageChange(RTestableApaLsSession &aLs);  
+    
+    void TestClientNotifSingleAppInstallation(RTestableApaLsSession &aLs);
+    void TestClientNotifMultipleAppInstallation(RTestableApaLsSession &aLs);    
+    void TestClientNotifUpgradeApp(RTestableApaLsSession &aLs); 
+    void TestClientNotifMultipleInstallations(RTestableApaLsSession &aLs); 
+    void TestClientNotifWithoutSetNotify(RTestableApaLsSession &aLs); 
+    void TestClientNotifOnPackageUpgrade(RTestableApaLsSession &aLs); 
+    void TestClientNotifOnPackageDowngrade(RTestableApaLsSession &aLs);     
+    
+    };
+
+
+_LIT(KT_ClientNotifStep,"T_ClientNotif");
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_dataprioritysystem3.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	T_DataPrioritySystem3.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10207f7f
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application exe registration resource file
+resource  	T_DataPrioritySystem3_reg.rss
+start resource 	T_DataPrioritySystem3_reg.rss
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+SOURCEPATH		../tef
+//SOURCE T_ServicesStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/t_drivenotification.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_drivenotification.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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,8 +29,11 @@
 #include <e32test.h>
 #include "appfwk_test_utils.h"
 #include "t_drivenotification.h"
+#include "T_SisFileInstaller.h"
 
-_LIT(KResourceFileSourceZ, "z:\\system\\data\\tnotifydrivesapp_reg.rsc");
+_LIT(KNotifyDriveAppSisFile, "z:\\apparctest\\apparctestsisfiles\\tnotifydrivesapp.sis");
+_LIT(KNotifyDriveAppComponent, "tnotifydrivesapp");
+
 
 void CDriveTestObserver::HandleAppListEvent(TInt /*aEvent*/)
 	{
@@ -82,16 +85,16 @@
 	CleanupClosePushL(theLs);
 	
 	// Wait for applist to be updated.... 
-	RPointerArray<TDesC> dummy;
-	User::LeaveIfError(theLs.ForceRegistration(dummy));
+	TRequestStatus status;
+	theLs.SetNotify(ETrue, status);
+	User::WaitForRequest(status);
 	
 	//Check whether app is not present in the applist
 	TInt ret = theLs.GetAppInfo(appInfo,appUid);
 	INFO_PRINTF3(_L(" Expected value is %d, Call to GetAppInfo returned : %d  "), KErrNotFound, ret);
 	TEST(ret==KErrNotFound);
 	
-	//Copy the registration file to C: drive.
-	CopyRegFileL(EDriveC);
+	//Install the application.
 	
 	CDriveTestObserver* obs = new(ELeave) CDriveTestObserver();
 	CleanupStack::PushL(obs);
@@ -99,7 +102,10 @@
 	CleanupStack::PushL(notif);
 	
 	obs->iNotifier = notif;
-		
+
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.InstallSisL(KNotifyDriveAppSisFile);
+	
 	CActiveScheduler::Start();
 	//Since c:\\private\\10003a3f\\Import\\apps\\ path is Monitored, a notification is issued and applist is updated.
 	TEST(obs->iNotified > 0);	
@@ -110,11 +116,8 @@
 	INFO_PRINTF3(_L(" Expected value is %d, Call to GetAppInfo returned : %d  "), KErrNone, ret);
 	TEST(ret==KErrNone);
 	
-	//Deleting the rsc file that is present in c:\\private\\10003a3f\\Import\\apps\\ path.
-	DeleteRegFileL(EDriveC);
-	
-	// Wait for applist to be updated.... 
-	User::LeaveIfError(theLs.ForceRegistration(dummy));
+	//Uninstall the application
+	sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KNotifyDriveAppComponent);
 	
 	//Check whether applist is updated and app is absent in the applist.
 	ret = theLs.GetAppInfo(appInfo,appUid);
@@ -128,8 +131,8 @@
 	//Copy the registration file to drive specified.
 	CopyRegFileL(drive);
 	
-	// Wait for applist to be updated.... 
-	User::LeaveIfError(theLs.ForceRegistration(dummy));
+//	// Wait for applist to be updated.... 
+//	User::LeaveIfError(theLs.ForceRegistration(dummy));
 	
 	//Check whether applist is updated and app is present in the applist.
 #ifdef __EABI__
@@ -143,7 +146,7 @@
 	TEST(ret==KErrNone);
 	INFO_PRINTF3(_L(" Expected value is %d, Call to GetAppInfo returned : %d  "),KErrNone, ret);
 	//Deleting the rsc file.
-	DeleteRegFileL(drive);
+//	DeleteRegFileL(drive);
 #endif
 	CleanupStack::PopAndDestroy(3, &theLs);
 	
@@ -184,7 +187,7 @@
 		{
 		User::LeaveIfError(ret);
 		}
-	ret = smlServer.CopyFileL(KResourceFileSourceZ, tempPathToBeCopied);
+//	ret = smlServer.CopyFileL(KResourceFileSourceZ, tempPathToBeCopied);
 	TEST(ret == KErrNone);
 	INFO_PRINTF2(_L("Copied Registration file. Finished with the value : %d "), ret);
 	CleanupStack::PopAndDestroy(4, &fs);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_forceregstep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,471 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include "t_forceregstep.h"
+#include <e32base.h>
+#include <e32cmn.h>
+#include "T_SisFileInstaller.h"
+#include <apgtask.h>
+#include <apgnotif.h>
+#include <e32property.h>
+#include<usif/scr/appregentries.h>
+#include "testableapalssession.h"
+
+_LIT(KForceRegApp1SisFile, "z:\\apparctest\\apparctestsisfiles\\ForceRegApp1.sis");
+_LIT(KForceRegApp1Component, "ForceRegApp1");
+
+_LIT(KForceRegMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\ForceRegMultipleApps.sis");
+_LIT(KForceRegMultipleAppsComponent, "ForceRegMultipleApps");
+
+_LIT(KForceRegApp2SisFile, "z:\\apparctest\\apparctestsisfiles\\ForceRegApp2.sis");
+_LIT(KForceRegApp2Component, "ForceRegApp2");
+
+const TUint KForceRegistratioWaitTime=5000000; //5s
+const TUid KUidForceRegApp2={0xA0001001};
+_LIT(KTestClientNotificationThreadName, "TestClientNotificationThreadName");
+
+
+CT_ForceRegStep::~CT_ForceRegStep()
+/**
+   Destructor
+ */
+    {
+    }
+
+CT_ForceRegStep::CT_ForceRegStep()
+/**
+   Constructor
+ */
+    {
+    // Call base class method to set up the human readable name for logging
+    SetTestStepName(KT_ForceRegStep);
+    }
+
+TVerdict CT_ForceRegStep::doTestStepPreambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+   
+    //Create property which is used for communication between test and force registered applications.
+    TInt error;
+    error=RProperty::Define(KPropertyCategory, KForceRegTestPropertyKey, RProperty::EInt);
+    if((error != KErrNone) && (error != KErrAlreadyExists))
+        User::Leave(error);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_ForceRegStep::doTestStepPostambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    RProperty::Delete(KPropertyCategory, KForceRegTestPropertyKey);
+    
+    return TestStepResult();
+    }
+    
+    
+TVerdict CT_ForceRegStep::doTestStepL()
+{
+    RunTestCases();
+    return TestStepResult();
+}
+
+
+void CT_ForceRegStep::RunTestCases()
+    {
+    RTestableApaLsSession ls;
+    User::LeaveIfError(ls.Connect());
+    RPointerArray<TDesC> regFiles;
+    //Check the earlier force registration API is not supported
+    TEST(ls.ForceRegistration(regFiles) == KErrNotSupported);
+    
+    CSisFileInstaller sisFileInstaller;
+    TApaAppInfo info;
+    TUid uid1 = {0xA0001000};
+    TInt err = ls.GetAppInfo(info, uid1);
+    if(err == KErrNone)
+        {      
+        sisFileInstaller.UninstallSisL(KForceRegApp1Component);
+        }    
+
+    TUid uid2 = {0xA0001001};
+    err = ls.GetAppInfo(info, uid2);
+    if(err == KErrNone)
+        {        
+        sisFileInstaller.UninstallSisL(KForceRegApp2Component);
+        }    
+
+    //Wait if apparc updating the applist
+    TRequestStatus applistChangeStatus;
+    ls.SetNotify(ETrue, applistChangeStatus);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //DONT_CHECK is used because when an application is installed the updated application
+    //information is added in the session objects. This causes increase of memory at server side.
+    //As there can be multiple applications registered with apparc for applist change notifications,
+    //its not possible to clear the information in all the session objects.
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestSingleForceRegistration(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestMultipleForceRegistration(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, 0, TestForceRegistrationSecurity(ls), NO_CLEANUP);
+    //HEAP_TEST_LS_SESSION(ls, 0, 0, TestForceRegistrationWhenInstallationFailed(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestForceRegistrationAndNoClientNotification(ls), NO_CLEANUP);
+    ls.Close();
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether force registration works with a sis file which has single run on install
+                            application.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Attaches to a property which will be set by force registered (or run on install) 
+                               application when it got executed.
+                            2. Installs sis file which has run on install application.
+                            3. Waits till the run on install application changes the propery or a timer expires.
+                            4. Checks the property is changed by run on install application.
+                             
+   @SYMTestExpectedResults The property is changed by run on install application.
+ */
+void CT_ForceRegStep::TestSingleForceRegistration(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestSingleForceRegistration test started..........."));
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    CleanupClosePushL(forceRegStatus);
+    
+    TRequestStatus forceRegStatusChange;
+    TRequestStatus forceRegWait; //Timer expiration status
+    
+    //Timer to wait for definite time.
+    RTimer timerToWait;
+    User::LeaveIfError(timerToWait.CreateLocal()); 
+    CleanupClosePushL(timerToWait);
+    timerToWait.After(forceRegWait, KForceRegistratioWaitTime);
+    
+    //The property value will be changed by forceregistered application when its executed.
+    forceRegStatus.Subscribe(forceRegStatusChange);
+    
+    INFO_PRINTF1(_L("Install forceregapp1 application"));    
+    //Install the forceregapp1
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KForceRegApp1SisFile);
+    sisFileInstaller.InstallSisL(KForceRegApp1SisFile);
+    
+    INFO_PRINTF1(_L("Wait till the timer expires or force registered application changes the property"));   
+    //Wait till the property is changed by forceregapp1 or till timer expires
+    User::WaitForRequest(forceRegWait, forceRegStatusChange);
+    
+    TInt value;
+    forceRegStatus.Get(value);
+    INFO_PRINTF2(_L("Property value: %d"), value);   
+    //Check the property value is changed by forceregapp1
+    TEST(value == KForceRegApp1Executed);
+ 
+    INFO_PRINTF1(_L("Uninstall forceregapp1 application"));     
+    //Uninstall the forceregapp1
+    sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KForceRegApp1Component);
+    CleanupStack::PopAndDestroy(2); //forceRegStatus, timerToWait
+    INFO_PRINTF1(_L("TestSingleForceRegistration test ended..........."));
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether force registration works with a sis file which has multiple run on install
+                            applications.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Attaches to a property which will be set by force registered (or run on install) 
+                               application when it got executed.
+                            2. Installs sis file which has multiple run on install applications.
+                            3. Waits till the run on install applications changes the propery or a timer expires.
+                            4. Checks the property is changed by run on install applications.
+                             
+   @SYMTestExpectedResults The property is changed by run on install applications.
+  */
+   
+void CT_ForceRegStep::TestMultipleForceRegistration(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestMultipleForceRegistration test started..........."));
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    //Set the property to a KStopForceRegApp2 to make the forceregapp2 to exit.
+    forceRegStatus.Set(KStopForceRegApp2);
+    
+    TRequestStatus forceRegApp1Executed, forceRegApp2Executed;
+    TRequestStatus forceRegWait;
+    
+    //Timer to wait for definite time.
+    RTimer timeToWait;
+    User::LeaveIfError(timeToWait.CreateLocal());    
+    timeToWait.After(forceRegWait, KForceRegistratioWaitTime);
+    //The property value will be changed by forceregistered application. Subscribe to property change.
+    forceRegStatus.Subscribe(forceRegApp1Executed);
+    
+    INFO_PRINTF1(_L("Install forceregapp1 and forceregapp2 application"));     
+    //Install the forceregapp1
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KForceRegMultipleAppsSisFile);
+    sisFileInstaller.InstallSisL(KForceRegMultipleAppsSisFile);
+    
+    INFO_PRINTF1(_L("Wait till the timer expires or force registered applications changes the property"));      
+    User::WaitForRequest(forceRegWait, forceRegApp1Executed);
+    
+    TInt value;
+    forceRegStatus.Get(value);
+    
+    //If the property value is not as expected, wait till the forceregapp2 is executed.
+    if(value != (KForceRegApp1Executed|KForceRegApp2Executed|KStopForceRegApp2))
+        {
+        forceRegStatus.Subscribe(forceRegApp2Executed);
+        forceRegWait=KRequestPending;
+        timeToWait.After(forceRegWait, KForceRegistratioWaitTime);
+        User::WaitForRequest(forceRegWait, forceRegApp2Executed);        
+        }
+    
+    forceRegStatus.Get(value);
+    INFO_PRINTF2(_L("Property value: %d"), value); 
+    //Check whether both force registered applications executed.
+    TEST(value == (KForceRegApp1Executed|KForceRegApp2Executed|KStopForceRegApp2));
+    
+    INFO_PRINTF1(_L("Uninstall forceregapp1 and forceregapp2 application"));     
+    sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KForceRegMultipleAppsComponent);
+    forceRegStatus.Close(); 
+    //Wait for time so that appac completes applist cache creation.
+    User::After(2000000);
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests force registration security. Force registration can only be used by SWI.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Creates dummy application information.
+                            2. Call the force registration with this application info.
+                            3. Check return value is KErrNotSupported.
+                             
+   @SYMTestExpectedResults ForceRegistration should return KErrNotSupported if other Software Installer 
+                           trying to use it.
+  */
+
+void CT_ForceRegStep::TestForceRegistrationSecurity(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestForceRegistrationSecurity test started..........."));    
+    Usif::CApplicationRegistrationData *appData=Usif::CApplicationRegistrationData::NewL();
+    CleanupStack::PushL(appData);
+    RPointerArray<Usif::CApplicationRegistrationData> appArray;
+    
+    INFO_PRINTF1(_L("Call ForceRegistration with empty TApaAppUpdate info array.........."));    
+    TEST(aLs.ForceRegistration(appArray)==KErrNone);
+    appArray.AppendL(appData);
+    INFO_PRINTF1(_L("Call ForceRegistration with TApaAppUpdate info array.........."));       
+    TEST(aLs.ForceRegistration(appArray)==KErrNotSupported);
+    
+    CleanupStack::PopAndDestroy(appData);
+    appArray.Close();    
+    INFO_PRINTF1(_L("TestForceRegistrationSecurity test ended..........."));     
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+   @SYMTestCaseDesc        Tests force registered applications information removed from the applist if 
+                            installation fails.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Install sis file which has force registered application.
+                            2. Cancel the installation.
+                            2. Check the force registered application is not available in the applist.
+                             
+   @SYMTestExpectedResults Force registered application information is removed from the applist
+  */
+
+void CT_ForceRegStep::TestForceRegistrationWhenInstallationFailed(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestForceRegistrationWhenInstallationFailed test started..........."));    
+    TApaAppInfo appInfo;
+    TInt err;
+    
+    //Check whether the application is already in the applist.
+    err=aLs.GetAppInfo(appInfo, KUidForceRegApp2);
+    INFO_PRINTF2(_L("Error Code returned: %d"), err);
+    TEST(err==KErrNotFound);
+
+    CSisFileInstaller sisFileInstaller;
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    TRequestStatus propertyStatus;
+    forceRegStatus.Subscribe(propertyStatus);
+
+    //Install ForceRegApp2 asynchronously
+    TRequestStatus installStatus;
+    INFO_PRINTF1(_L("Install the sis file which eventually cancelled by test"));
+    err=KErrNone;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KForceRegApp2SisFile);
+    TRAP(err, sisFileInstaller.InstallSisAsynchronouslyL(KForceRegApp2SisFile, installStatus));
+    TEST(err == KErrNone);
+
+    //ForceRegApp2 is run on install application. The property is changed when the application executed.
+    User::WaitForRequest(propertyStatus); 
+
+    //Make ForceRegApp2 to exit by adding KStopForceRegApp2 to property.
+    TInt value;
+    forceRegStatus.Get(value);
+    value |= KStopForceRegApp2;
+    forceRegStatus.Set(value); 
+    forceRegStatus.Close();
+    
+    //Cancel the installation.
+    sisFileInstaller.CancelInstallation();
+    User::WaitForRequest(installStatus);
+    sisFileInstaller.Close();
+    
+    User::After(2000000);
+    INFO_PRINTF2(_L("Installation ended with error code: %d"), installStatus.Int());    
+    TEST(installStatus.Int() != KErrNone);
+    
+    //Check the force registered application is no longer exists in the applist.
+    err=aLs.GetAppInfo(appInfo, KUidForceRegApp2);
+    INFO_PRINTF2(_L("Error Code returned: %d"), err);    
+    TEST(err==KErrNotFound);  
+    INFO_PRINTF1(_L("TestForceRegistrationWhenInstallationFailed test ended..........."));       
+    }
+
+TInt TestClientNotificationThread(TAny* aPtr);
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests if applist is changed due to force registration, apparc will not notify the 
+                            clients.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. Start TestClientNotificationThread which registers with apparc for applist change 
+                               notification and waits till applist change notification occurs or a timer expires.
+                               Once any of the event occurs, then changes the property to make the forceregapp2 to
+                               exit and makes the status of applist change reflects in property.
+                            2. Installs a sis file which has run on install forcereg1 and forcereg2 applications
+                            3. Waits till the TestClientNotificationThread exits.
+                            4. Checks whether applist change notification recieved or not.
+                             
+   @SYMTestExpectedResults  Apparc does not notify clients about applist change which occur due to force registration.
+  */
+
+void CT_ForceRegStep::TestForceRegistrationAndNoClientNotification(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestForceRegistrationAndNoClientNotification test started..........."));       
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    forceRegStatus.Set(0);
+    
+    TBuf<0x100> threadName(KTestClientNotificationThreadName);
+    RThread thread;
+
+    INFO_PRINTF1(_L("Start TestClientNotificationThread thread"));   
+    User::LeaveIfError(thread.Create(threadName, TestClientNotificationThread, 0x1000, NULL, (TAny*) this));
+    CleanupClosePushL(thread);
+    TRequestStatus status;
+    thread.Logon(status);
+    thread.Resume();
+    
+    INFO_PRINTF1(_L("Install sis file"));      
+    //Install the forceregapp1
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KForceRegMultipleAppsSisFile);
+    sisFileInstaller.InstallSisL(KForceRegMultipleAppsSisFile);
+    
+    INFO_PRINTF1(_L("Waiting till TestClientNotificationThread thread exits"));     
+    User::WaitForRequest(status);
+    
+    TInt value;
+    forceRegStatus.Get(value);
+    INFO_PRINTF2(_L("Property value: %d"), value);     
+    TEST(!(value & KApplistChanged));
+    INFO_PRINTF1(_L("Uninstall sis file"));     
+    sisFileInstaller.UninstallSisL(KForceRegMultipleAppsComponent);
+    CleanupStack::PopAndDestroy();
+    forceRegStatus.Close();  
+    INFO_PRINTF1(_L("TestForceRegistrationAndNoClientNotification test ended..........."));    
+    }
+
+/*
+ * TestClientNotificationThread registers with apparc for applist change notification and waits till applist 
+ * change notification occurs or a timer expires. Once any of the event occurs, then changes the property to 
+ * make the forceregapp2 to exit and makes the status of applist change reflects in property.
+ */
+
+TInt TestClientNotificationThread(TAny* aPtr)
+    {
+    RApaLsSession ls;
+    User::LeaveIfError(ls.Connect());
+    TRequestStatus applistChangeStatus, timeOutStatus;
+    ls.SetNotify(EFalse, applistChangeStatus);
+
+    //Timer to wait for definite time.
+    RTimer timeToWait;
+    User::LeaveIfError(timeToWait.CreateLocal());    
+    timeToWait.After(timeOutStatus, KForceRegistratioWaitTime);
+    User::WaitForRequest(applistChangeStatus, timeOutStatus);
+
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KForceRegTestPropertyKey, EOwnerThread));
+    TInt status;
+    forceRegStatus.Get(status);
+    
+    if(applistChangeStatus.Int() == MApaAppListServObserver::EAppListChanged)
+        status |= KApplistChanged;
+
+    status |= KStopForceRegApp2;
+    forceRegStatus.Set(status);
+    forceRegStatus.Close();
+    
+    return(KErrNone);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_forceregstep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,60 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#if (!defined __T_FORCEREG_H__)
+#define __T_FORCEREG_H__
+
+
+#include <test/testexecutestepbase.h>
+
+class RTestableApaLsSession;
+
+const TUid KPropertyCategory = {0x101F289C};
+const TUint KForceRegTestPropertyKey = 1;
+
+const TUint KForceRegApp1Executed = 0x1;
+const TUint KForceRegApp2Executed = 0x2;
+const TUint KStopForceRegApp2 = 0x10;
+const TUint KApplistChanged = 0x0100;
+
+
+/*Tests force registration functionality */
+
+class CT_ForceRegStep : public CTestStep 
+    {
+public:
+    CT_ForceRegStep();
+    ~CT_ForceRegStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();
+    virtual TVerdict doTestStepL();
+
+private:
+    void RunTestCases();   
+    void TestSingleForceRegistration(RTestableApaLsSession &aLs);
+    void TestMultipleForceRegistration(RTestableApaLsSession &aLs);
+    void TestForceRegistrationSecurity(RTestableApaLsSession &aLs);
+    void TestForceRegistrationWhenInstallationFailed(RTestableApaLsSession &aLs);
+    void TestForceRegistrationAndNoClientNotification(RTestableApaLsSession &aLs); 
+    };
+
+_LIT(KT_ForceRegStep,"T_ForceReg");
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_groupname.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	T_groupname.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208185
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application localisable resource file
+resource  	T_groupname_loc.RSS
+start resource 	T_groupname_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+
+START RESOURCE	T_groupname_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_groupname_ver1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	T_groupname_ver1.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208183
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application localisable resource file
+resource  	T_groupnamever1_loc.RSS
+start resource 	T_groupnamever1_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+
+START RESOURCE	T_groupnamever1_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_groupname_ver2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	T_groupname_ver2.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10208184
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application localisable resource file
+resource  	T_groupnamever2_loc.RSS
+start resource 	T_groupnamever2_loc.RSS
+HEADER
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+
+START RESOURCE	T_groupnamever2_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/t_largestackstep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_largestackstep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -29,6 +29,10 @@
 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "../apserv/apsclsv.h"
 #include "t_largestackstep.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KLargeStackAppSisFile, "z:\\apparctest\\apparctestsisfiles\\tlargestackapp.sis");
+_LIT(KLargeStackAppComponent, "tlargestackapp");
 
 const TUid KLargeStackAppUid = {0x10282B27};
 
@@ -94,6 +98,33 @@
 	CleanupStack::PopAndDestroy(commandline);
 	}
 
+TVerdict CT_LargeStackStep::doTestStepPreambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KLargeStackAppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KLargeStackAppSisFile); 
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_LargeStackStep::doTestStepPostambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KLargeStackAppComponent); 
+    
+    return TestStepResult();
+    }
+
+
 TVerdict CT_LargeStackStep::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Test T_LargeStack Started"));
--- a/appfw/apparchitecture/tef/t_largestackstep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_largestackstep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -39,6 +39,8 @@
 	~CT_LargeStackStep();
 	
 	//from CTestStep
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();	
 	TVerdict doTestStepL();
 
 private:
--- a/appfw/apparchitecture/tef/t_mimecontentpolicystep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_mimecontentpolicystep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -20,6 +20,11 @@
 */
 
 #include "t_mimecontentpolicystep.h"
+#include <centralrepository.h>
+#include <apmstd.h>
+
+//Closed content and extension information repository UID
+const TUid KClosedContentAndExtensionInfoRepositoryUID={0x10003A3F};
 
 _LIT(KPathjpg1, "z:\\system\\data\\type-r.jpg");
 _LIT(KPathjpg2, "z:\\system\\data\\propelli.jpg");
@@ -76,6 +81,7 @@
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsDRMEnvelopeFileHandleL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsClosedFileFileHandleL(), iApaLsSession.FlushRecognitionCache());
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPOOMTestL(), iApaLsSession.FlushRecognitionCache());
+	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL(), NO_CLEANUP);
 	}
 
 /**
@@ -89,8 +95,9 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed types are the mime types which are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed types are the mime types which are listed in the 10003a3f repository file.
    Calls CApfMimeContentPolicy::IsClosedType(const TDesC& aMimeType); for different closed and non-closed mime types.
+   And also it tests whether invalid mime types are not added to the list.
   
    @SYMTestExpectedResults The test checks whether IsClosedType returns ETrue for the Closed Mime types and EFalse for non-closed Mime types
  */
@@ -120,7 +127,17 @@
 	_LIT(KMimeType20, "video/mpeg");
 	_LIT(KMimeType21, "video/quicktime");
 	_LIT(KMimeType22, "video/mpeg4-generic");
-								    
+		
+    //Invalid mime types
+    _LIT(KMimeType23, "/test");
+    _LIT(KMimeType24, "test");
+    _LIT(KMimeType25, "test/");
+    _LIT(KMimeType26, "/test/");
+    _LIT(KMimeType27, "test/testmime/");
+    _LIT(KMimeType28, "/test/testmime");
+    _LIT(KMimeType29, "test\\testmime");      
+
+    
   
 	INFO_PRINTF1(_L("Tests the MIME types found on closed content list"));
     
@@ -192,6 +209,27 @@
   	
   	TEST(!iCcp->IsClosedType(KMimeType22));
   	INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType22);
+  	
+    TEST(!iCcp->IsClosedType(KMimeType23));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType23);
+   
+    TEST(!iCcp->IsClosedType(KMimeType24));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType24);
+  
+    TEST(!iCcp->IsClosedType(KMimeType25));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType25);
+
+    TEST(!iCcp->IsClosedType(KMimeType26));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType26);
+
+    TEST(!iCcp->IsClosedType(KMimeType27));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType27);
+    
+    TEST(!iCcp->IsClosedType(KMimeType28));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType28); 
+    
+    TEST(!iCcp->IsClosedType(KMimeType29));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType29);    
   	}
 
 /**
@@ -205,8 +243,9 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed file extensions are the file extensions which are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed file extensions are the file extensions which are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedExtension(const TDesC& aFileExtension); for different closed and non-closed File Extensions.
+   And also it tests whether invalid closed extensions are not added to the list.
   
    @SYMTestExpectedResults The test checks whether IsClosedExtension returns ETrue for the Closed File Extensions and EFalse for non-closed File Extensions.
  */
@@ -229,6 +268,9 @@
 	_LIT(KExtension14, ".sis7");
 	_LIT(KExtension15, ".0sis");
 	_LIT(KExtension16, ".gif");
+	
+	//Invalid extension
+    _LIT(KExtension17, "tst");	
 
     INFO_PRINTF1(_L("Tests the extensions found on closed content list"));
 	
@@ -282,6 +324,9 @@
 	
 	TEST(!iCcp->IsClosedExtension(KExtension16));
 	INFO_PRINTF2(_L("%S is not Closed Extension"), &KExtension16);
+	
+    TEST(!iCcp->IsClosedExtension(KExtension17));
+    INFO_PRINTF2(_L("%S is not Closed Extension"), &KExtension17);	
 	}
 
 /**
@@ -322,7 +367,7 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed files are files whose file extensions are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed files are files whose file extensions are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedFileL(const TDesC& aFileName); for different Closed and non-closed files.
    Calls CApfMimeContentPolicy::IsClosedFileL(const TDesC& aFileName); with file which is already open and checks whether \n
    call succeeds.
@@ -427,7 +472,7 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed files are files whose file extensions are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed files are files whose file extensions are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedFileL(RFile& aFileHandle); for different Closed and non-closed files.
      
    @SYMTestExpectedResults The test checks whether IsClosedFileL() returns EFalse for Files which are not closed and\n
@@ -509,3 +554,58 @@
 	INFO_PRINTF1(_L("OOM test Completed"));	
 	}
 
+
+/**
+   @SYMTestCaseID APPFWK-APPARC-0108
+
+   @SYMREQ REQ410-2692
+ 
+   @SYMTestCaseDesc Tests Closed content and extension information repository is not writable.
+  
+   @SYMTestPriority High 
+ 
+   @SYMTestStatus Implemented
+  
+   @SYMTestActions Calls create, get, set, reset, delete functions on the repository. Checks only read operations are allowed.
+     
+   @SYMTestExpectedResults Tests should complete without any failure.
+ */
+
+void CT_MimeContentPolicyStep::CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL()
+    {
+    INFO_PRINTF1(_L("Testcase CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnly...."));   
+    CRepository *cenrep=CRepository::NewL(KClosedContentAndExtensionInfoRepositoryUID);  
+    CleanupStack::PushL(cenrep);
+    TInt newKeyValue=0x00010000;
+    //This key already exists in the default Closed content and extension information repository
+    TInt existingKey=0x1;
+    TBuf<KMaxDataTypeLength> keyData;
+    TInt err=KErrNone;
+    
+    INFO_PRINTF1(_L("Testing creation of key in the repository"));
+    err=cenrep->Create(newKeyValue, 0);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while creating a key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing setting value of an existing key in the repository"));    
+    err=cenrep->Set(existingKey, 0);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while setting a value of an existing key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing getting value of an existing key in the repository"));
+    err=cenrep->Get(existingKey, keyData);
+    TEST(err==KErrNone);
+    INFO_PRINTF2(_L("Error code while getting a value of an existing key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing resetting value of an existing key in the repository"));
+    err=cenrep->Reset(existingKey);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while reseting a value of existing key: %d"), err);
+
+    INFO_PRINTF1(_L("Testing deleting an existing key in the repository"));
+    err=cenrep->Delete(existingKey);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while deleting an existing key: %d"), err);
+    CleanupStack::PopAndDestroy(cenrep);
+    INFO_PRINTF1(_L("Testcase CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnly completed...."));    
+    }
--- a/appfw/apparchitecture/tef/t_mimecontentpolicystep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_mimecontentpolicystep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -46,6 +46,7 @@
     // aIsDRMEnvelope is ETrue for DRM Envelope and EFalse for ClosedFile
     TBool DoCCPTestUsingFileHandleL(const TDesC &aName, TBool aIsDRMEnvelope);
     void CCPOOMTestL();
+    void CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL();
 
 private:
 	CApfMimeContentPolicy* iCcp;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_nonnativetest.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,307 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include "t_nonnativetest.h"
+#include <e32base.h>
+#include <e32cmn.h> 
+#include "T_SisFileInstaller.h"
+#include <apgtask.h>
+#include <apgnotif.h>
+#include <e32property.h>
+#include<usif/scr/appregentries.h>
+#include "testableapalssession.h"
+#include "appfwk_test_utils.h"
+#include "apacmdln.h"
+#include "apgicnflpartner.h"
+
+_LIT(KTNonNativeRuntimeSisFile, "z:\\apparctest\\apparctestsisfiles\\tnonnativeruntime.sis");
+_LIT(KTNonNativeRuntimeComponent, "TNonNativeRunTime"); 
+
+_LIT(KTestScrDBSource, "z:\\apparctest\\scr_test.db");
+_LIT(KScrDBSource, "z:\\apparctest\\scr.db");
+_LIT(KScrDBTarget, "c:\\sys\\install\\scr\\scr.db");
+_LIT(KScrDBTempTarget, "c:\\sys\\install\\scr\\scr_temp.db");
+
+
+_LIT(KNonNotiveAppName, "\\268454131.fakeapp"); 
+
+const TUid KMidletUid={0x10210E26};
+const TUid KWidgetUid={0x10282821};
+const TUid KTestNonNativeUid={0xFF51233};
+
+const TUid KUidNonNativeRuntime={0xA0001002};
+
+const TUid KPropertyCategory = {0x101F289C};
+const TUint KNonNativeTestPropertyKey = 2;
+
+CT_NonNativeTestStep::~CT_NonNativeTestStep()
+/**
+   Destructor
+ */
+    {
+    }
+
+CT_NonNativeTestStep::CT_NonNativeTestStep()
+/**
+   Constructor
+ */
+    {
+    // Call base class method to set up the human readable name for logging
+    SetTestStepName(KT_NonNativeTestStep);
+    }
+
+TVerdict CT_NonNativeTestStep::doTestStepPreambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+   
+    //Create property which is used for communication between test and non-native runtime.
+    TInt error;
+    error=RProperty::Define(KPropertyCategory, KNonNativeTestPropertyKey, RProperty::EInt);
+    if((error != KErrNone) && (error != KErrAlreadyExists))
+        User::Leave(error);
+    
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+TVerdict CT_NonNativeTestStep::doTestStepPostambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+    {
+    RProperty::Delete(KPropertyCategory, KNonNativeTestPropertyKey);
+    
+    return TestStepResult();
+    }
+    
+    
+TVerdict CT_NonNativeTestStep::doTestStepL()
+{
+    RunTestCases();
+    return TestStepResult();
+}
+
+
+void CT_NonNativeTestStep::RunTestCases()
+    {
+    RTestableApaLsSession ls;
+    User::LeaveIfError(ls.Connect());
+    
+    //Wait if apparc updating the applist
+    TRequestStatus applistChangeStatus;
+    ls.SetNotify(ETrue, applistChangeStatus);
+    User::WaitForRequest(applistChangeStatus);
+    
+    //DONT_CHECK is used because when an application is installed the updated application
+    //information is added in the session objects. This causes increase of memory at server side.
+    //As there can be multiple applications registered with apparc for applist change notifications,
+    //its not possible to clear the information in all the session objects.
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestNonNativeAppLaunchWithUnavailableMappingL(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, 0, TestNonNativeUnsupportedAPIs(ls), NO_CLEANUP); 
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestGetAppTypeL(ls), NO_CLEANUP);
+    ls.Close();
+    }
+
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+    @SYMTestCaseDesc        Tests whether apparc able to launch a non-native application for which the mapping is 
+                            not avaialable in apparc mapping table but its available in SCR. 
+                            
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+                             
+   @SYMTestExpectedResults Apparc will launch the non-native applciation.
+ */
+
+void CT_NonNativeTestStep::TestNonNativeAppLaunchWithUnavailableMappingL(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestNonNativeAppLaunchWithUnavailableMapping test started..........."));
+    
+    RProperty property;
+    User::LeaveIfError(property.Attach(KPropertyCategory, KNonNativeTestPropertyKey, EOwnerThread));
+    CleanupClosePushL(property);
+    User::After(2000000); //Wait for 2 secconds till SCR server closed.
+    
+    RSmlTestUtils fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);  
+    
+    INFO_PRINTF1(_L("Delete existing scr.db"));    
+    //Copy the existing SCR db to temp file and delete it
+    fs.CopyFileL(KScrDBTarget, KScrDBTempTarget);
+    fs.DeleteFileL(KScrDBTarget);
+    
+    INFO_PRINTF1(_L("Copying scr_test.db"));    
+    //Copy the scr_test.db which has non-native application information and 
+    //non-native type to its runtime.
+    fs.CopyFileL(KTestScrDBSource, KScrDBTarget);
+    fs.ChangeFilePermissionL(KScrDBTarget);
+    
+    INFO_PRINTF1(_L("Updating applist with a non-native application exists in scr_test.db"));     
+    TApaAppUpdateInfo appUpdateInfo;
+    RArray<TApaAppUpdateInfo> updateAppArray;
+    CleanupClosePushL(updateAppArray);    
+    
+    appUpdateInfo.iAppUid=TUid::Uid(0x100048F3); //Test non-native app
+    appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent;
+    updateAppArray.AppendL(appUpdateInfo);
+    
+    TRequestStatus status;
+    aLs.SetNotify(EFalse, status);    
+    aLs.UpdateAppListL(updateAppArray);
+    CleanupStack::PopAndDestroy(&updateAppArray);
+    User::WaitForRequest(status);
+    
+    INFO_PRINTF1(_L("Starting non-native application"));    
+    CApaCommandLine* cmd=CApaCommandLine::NewLC();
+    cmd->SetExecutableNameL(KNonNotiveAppName);
+    aLs.StartApp(*cmd);
+    CleanupStack::PopAndDestroy(cmd);
+    User::After(2000000);
+   
+    //Once the non-native runtime executes, the property value is set to 1.
+    TInt value;
+    property.Get(value);
+    INFO_PRINTF2(_L("Property value: %d"), value);   
+    TEST(value == 1);
+ 
+    INFO_PRINTF1(_L("Restoring the scr.db"));    
+    User::After(2000000);   
+    fs.DeleteFileL(KScrDBTarget);
+    fs.CopyFileL(KScrDBTempTarget, KScrDBTarget);
+    fs.DeleteFileL(KScrDBTempTarget);
+    
+    CleanupStack::PopAndDestroy(2, &property);
+    INFO_PRINTF1(_L("TestNonNativeAppLaunchWithUnavailableMapping test ended..........."));
+    }
+
+
+
+void CT_NonNativeTestStep::TestNonNativeUnsupportedAPIs(RTestableApaLsSession &aLs)
+{
+    INFO_PRINTF1(_L("TestNonNativeUnsupportedAPIs test started..........."));  
+    TUid uid=KNullUid;
+    TDriveUnit drive;
+    CApaRegistrationResourceFileWriter* regFileWriter=NULL;
+    CApaLocalisableResourceFileWriter* locFileWriter=NULL;
+    RFile *file=NULL;
+    TPtrC fileName;
+    
+    TRAPD(err, aLs.RegisterNonNativeApplicationTypeL(uid, fileName));
+    TEST(err == KErrNotSupported);
+
+    TRAP(err, aLs.DeregisterNonNativeApplicationTypeL(uid));
+    TEST(err == KErrNotSupported);
+    
+    TRAP(err, aLs.PrepareNonNativeApplicationsUpdatesL());
+    TEST(err == KErrNotSupported);
+
+    TRAP(err, aLs.RegisterNonNativeApplicationL(uid, drive, *regFileWriter, locFileWriter, file));
+    TEST(err == KErrNotSupported);
+    
+    TRAP(err, aLs.DeregisterNonNativeApplicationL(uid));
+    TEST(err == KErrNotSupported);
+    
+    TRAP(err, aLs.CommitNonNativeApplicationsUpdatesL());
+    TEST(err == KErrNotSupported);
+    
+    TRAP(err, aLs.ForceCommitNonNativeApplicationsUpdatesL());
+    TEST(err == KErrNotSupported);
+    
+    TEST(aLs.RollbackNonNativeApplicationsUpdates() == KErrNotSupported);
+    
+    INFO_PRINTF1(_L("TestNonNativeUnsupportedAPIs test ended..........."));    
+}
+
+
+void CT_NonNativeTestStep::TestGetAppTypeL(RTestableApaLsSession &aLs)
+    {
+    INFO_PRINTF1(_L("TestGetAppTypeL test started..........."));
+    
+    RSmlTestUtils fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);  
+    User::After(2000000); //Wait for 2 secconds till SCR server closed.    
+    
+    INFO_PRINTF1(_L("Delete existing scr.db"));    
+    //Copy the existing SCR db to temp file and delete it
+    fs.CopyFileL(KScrDBTarget, KScrDBTempTarget);
+    fs.DeleteFileL(KScrDBTarget);
+    
+    INFO_PRINTF1(_L("Copying scr_test.db"));    
+    //Copy the scr_test.db which has non-native application information and 
+    //non-native type to its runtime.
+    fs.CopyFileL(KTestScrDBSource, KScrDBTarget);
+    fs.ChangeFilePermissionL(KScrDBTarget);    
+    
+     INFO_PRINTF1(_L("Updating applist with a non-native application exists in scr_test.db"));     
+    TApaAppUpdateInfo appUpdateInfo;
+    RArray<TApaAppUpdateInfo> updateAppArray;
+    CleanupClosePushL(updateAppArray);    
+    
+    appUpdateInfo.iAppUid=TUid::Uid(0x100048F3); //Test non-native app
+    appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent;
+    updateAppArray.AppendL(appUpdateInfo);
+    
+    appUpdateInfo.iAppUid=TUid::Uid(0x10201D0E); //Test java app
+    appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent;
+    updateAppArray.AppendL(appUpdateInfo);
+    
+    appUpdateInfo.iAppUid=TUid::Uid(0x10286B0D); //Test widget app
+    appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent;
+    updateAppArray.AppendL(appUpdateInfo);
+    
+    TRequestStatus status;
+    aLs.SetNotify(EFalse, status);    
+    aLs.UpdateAppListL(updateAppArray);
+    CleanupStack::PopAndDestroy(&updateAppArray);
+    User::WaitForRequest(status);
+    
+    INFO_PRINTF1(_L("Test GetAppType returns valid uids"));
+    TUid appTypeID;
+    User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x10201D0E))); //Java app
+    TEST(appTypeID == KMidletUid);
+
+    User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x100048F3))); //Test non-native app
+    TEST(appTypeID == KTestNonNativeUid);
+    
+    User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x10286B0D))); //widget app
+    TEST(appTypeID == KWidgetUid);
+    
+   
+    INFO_PRINTF1(_L("Restoring the scr.db"));    
+    User::After(2000000);    
+    fs.DeleteFileL(KScrDBTarget);
+    fs.CopyFileL(KScrDBTempTarget, KScrDBTarget);
+    fs.DeleteFileL(KScrDBTempTarget);
+    
+    CleanupStack::PopAndDestroy(&fs);
+    INFO_PRINTF1(_L("TestGetAppTypeL test ended..........."));
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_nonnativetest.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#if (!defined __T_NONNATIVETEST_H__)
+#define __T_NONNATIVETEST_H__
+
+
+#include <test/testexecutestepbase.h>
+
+class RTestableApaLsSession;
+
+
+/*Tests non-native application launching functionality */
+
+class CT_NonNativeTestStep : public CTestStep 
+    {
+public:
+    CT_NonNativeTestStep();
+    ~CT_NonNativeTestStep();
+    virtual TVerdict doTestStepPreambleL();
+    virtual TVerdict doTestStepPostambleL();
+    virtual TVerdict doTestStepL();
+
+private:
+    void RunTestCases();   
+    void TestNonNativeAppLaunchWithUnavailableMappingL(RTestableApaLsSession &aLs);
+    void TestNonNativeUnsupportedAPIs(RTestableApaLsSession &aLs);
+    void TestGetAppTypeL(RTestableApaLsSession &aLs);
+    };
+
+_LIT(KT_NonNativeTestStep,"T_NonNativeTest");
+
+#endif
--- a/appfw/apparchitecture/tef/t_servicebasestep.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_servicebasestep.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -25,6 +25,10 @@
 #include "appfwk_test.h"
 #include "testableapalssession.h"
 #include "../tef/TNonNative/TNNApp1.h"
+#include "T_SisFileInstaller.h" 
+
+_LIT(KTNNA1AppSisFile, "z:\\apparctest\\apparctestsisfiles\\TNNApp1.sis");
+_LIT(KTNNA1AppComponent, "TNNApp1");
 
 TInt PanicTest(TAny* aOption);
 
@@ -463,12 +467,19 @@
 
 TVerdict CT_ServiceBaseStep::doTestStepPreambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTNNA1AppSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTNNA1AppSisFile);
+    
 	SetTestStepResult(EPass);
 	return TestStepResult();
 	}
 
 TVerdict CT_ServiceBaseStep::doTestStepPostambleL()
 	{
+    CSisFileInstaller sisFileInstaller;
+    sisFileInstaller.UninstallSisL(KTNNA1AppComponent);
+    
 	return TestStepResult();
 	}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_sisfileinstaller.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,199 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The following test case is used to test if apparctestserver 
+// can return app data for a specific app by caching that data when requested.
+// 
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <apgcli.h>
+#include "T_SisFileInstaller.h"
+#include <usif/scr/screntries.h>
+#include <usif/usiferror.h>
+
+using namespace Usif;
+
+CSisFileInstaller::CSisFileInstaller()
+    {   
+    }
+
+CSisFileInstaller::~CSisFileInstaller()
+    {
+    iSif.Close();
+    }
+
+TInt CSisFileInstaller::InstallSisAndWaitForAppListUpdateL(const TDesC& aFileName)
+{
+ RApaLsSession ls;
+ User::LeaveIfError(ls.Connect());
+ CleanupClosePushL(ls);
+ TRequestStatus status;
+ ls.SetNotify(EFalse, status);
+ InstallSisL(aFileName);
+ User::WaitForRequest(status);
+ CleanupStack::PopAndDestroy();
+ return KErrNone;
+}
+
+TInt CSisFileInstaller::UninstallSisAndWaitForAppListUpdateL(const TDesC& aComponentName)
+{
+ RApaLsSession ls;
+ User::LeaveIfError(ls.Connect());
+ CleanupClosePushL(ls);
+ TRequestStatus status;
+ ls.SetNotify(EFalse, status);
+ UninstallSisL(aComponentName);
+ User::WaitForRequest(status);
+ CleanupStack::PopAndDestroy();
+ return KErrNone;
+}
+
+TInt CSisFileInstaller::InstallSisL(const TDesC& aFileName)
+    {
+    TBuf<256> buf;
+    buf.Copy(aFileName);
+    HBufC* as = buf.AllocL();        
+    TPtr16 sisFileName = as->Des();
+    CleanupStack::PushL(as);
+    
+    RFs fs;
+    RFile file;
+    User::LeaveIfError(fs.Connect());
+    fs.ShareProtected();
+    CleanupClosePushL(fs);
+    User::LeaveIfError(file.Open(fs, sisFileName, EFileRead | EFileShareReadersOnly));
+    CleanupClosePushL(file);
+    User::LeaveIfError(iSif.Connect()); 
+    CleanupClosePushL(iSif);  
+    TInt err=KErrNone;
+     do
+         {
+         iSif.Install(aFileName, iStatus, ETrue);
+         User::WaitForRequest(iStatus);
+         err=iStatus.Int();
+         }
+     while( err == KErrScrReadOperationInProgress);
+     
+    User::LeaveIfError(err);
+     
+    CleanupStack::PopAndDestroy(4, as);
+    return KErrNone;
+    }
+
+
+TInt CSisFileInstaller::UninstallSisL(const TDesC& aComponentName)
+    {    
+    _LIT(KSisComponentVendor, "Nokia India Pvt Ltd");   
+    
+    RFs fs;
+    RFile file;
+    User::LeaveIfError(fs.Connect());
+    fs.ShareProtected();
+    CleanupClosePushL(fs);     
+
+    User::LeaveIfError(iSif.Connect());
+    CleanupClosePushL(iSif);
+    
+    TBuf<256> buf;
+    buf.Copy(aComponentName);
+    HBufC* as1 = buf.AllocL();        
+    TPtr16 componentName = as1->Des();
+    HBufC* as2 = KSisComponentVendor().AllocL();
+    TPtr16 componentVendor = as2->Des();
+    iComponentId = FindComponentInScrL(componentName, componentVendor); 
+
+    TInt err=KErrNone;
+     do
+         {
+         iSif.Uninstall(iComponentId, iStatus, ETrue);
+         User::WaitForRequest(iStatus);
+         err=iStatus.Int();
+         }
+     while( err == KErrScrReadOperationInProgress);
+     
+    //Leave if sis file uninstllation failed.
+    User::LeaveIfError(err);
+    
+    delete as1;
+    delete as2;
+    as1 = NULL;
+    as2 = NULL;  
+    CleanupStack::PopAndDestroy(2, &fs); 
+    return KErrNone;
+    }
+
+
+void CSisFileInstaller::CancelInstallation()
+    {
+    iSif.CancelOperation();
+    }
+
+void CSisFileInstaller::Close()
+    {
+    iSif.Close();
+    }
+
+TInt CSisFileInstaller::InstallSisAsynchronouslyL(const TDesC& aFileName, TRequestStatus& status)
+{
+    TBuf<256> buf;
+    buf.Copy(aFileName);
+    HBufC* as = buf.AllocL();        
+    TPtr16 sisFileName = as->Des();
+    CleanupStack::PushL(as);
+    
+    RFs fs;
+    RFile file;
+    User::LeaveIfError(fs.Connect());
+    fs.ShareProtected();
+    CleanupClosePushL(fs);
+    User::LeaveIfError(file.Open(fs, sisFileName, EFileRead | EFileShareReadersOnly));
+    CleanupClosePushL(file);
+    CleanupStack::PopAndDestroy(3, as);
+    
+    User::LeaveIfError(iSif.Connect()); 
+    
+    iSif.Install(aFileName, status, ETrue);
+    return KErrNone;
+}
+
+TInt CSisFileInstaller::FindComponentInScrL(const TDesC& aComponentName, const TDesC& aVendor)
+    {
+    RSoftwareComponentRegistry scr;
+    User::LeaveIfError(scr.Connect());
+    CleanupClosePushL(scr);
+
+    RSoftwareComponentRegistryView scrView;
+    CComponentFilter* filter = CComponentFilter::NewLC();
+    filter->SetNameL(aComponentName);
+    filter->SetVendorL(aVendor);
+
+    scrView.OpenViewL(scr, filter);
+    CleanupClosePushL(scrView);
+
+    CComponentEntry* component = scrView.NextComponentL();
+    TInt componentId = 0;
+    if (component != NULL)
+        {
+        componentId = component->ComponentId();
+        delete component;
+        }
+
+    CleanupStack::PopAndDestroy(3, &scr);    
+    return componentId; 
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_sisfileinstaller.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,65 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef     __T_SISFILEINSTALLER_H
+#define     __T_SISFILEINSTALLER_H
+
+#include "appfwk_test_appui.h"
+#include "apparctestserver.h"
+#include "testableapalssession.h"
+
+#include <usif/sif/sif.h>
+#include <usif/scr/screntries.h>
+#include <usif/sif/siftransportclient.h>
+#include <usif/sif/sifcommon.h>
+#include <scs/scsclient.h>
+#include <usif/usifcommon.h>
+#include <usif/scr/scr.h>
+#include <e32std.h>
+#include <scs/scscommon.h>
+#include <scs/scsserver.h>
+#include <e32const.h>
+
+//! CTestAppSisFile
+/*! 
+  This class is used for install and uninstall of sis files
+*/
+class CSisFileInstaller: public CBase
+    {
+public:  
+    CSisFileInstaller();
+    ~CSisFileInstaller();
+
+    TInt InstallSisL(const TDesC& aFileName);
+    TInt InstallSisAndWaitForAppListUpdateL(const TDesC& aFileName);
+    TInt UninstallSisL(const TDesC& aComponentName);
+    TInt UninstallSisAndWaitForAppListUpdateL(const TDesC& aComponentName);    
+    TInt FindComponentInScrL(const TDesC& aComponentName, const TDesC& aVendor);
+    void CancelInstallation();
+    TInt InstallSisAsynchronouslyL(const TDesC& aFileName, TRequestStatus& status);
+    void Close();
+private:
+    friend class CSifOperationStep;
+    Usif::RSoftwareInstall iSif;
+    Usif::TComponentId iComponentId;
+    TRequestStatus iStatus;
+    };
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_updateapplist.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,159 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tests UpdateAppList API of RApaLsSession class.
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <apgcli.h>
+#include "T_UpdateAppList.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
+_LIT(KTestMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleApps.sis");
+_LIT(KTestMultipleAppsComponent, "TestMultipleApps");
+
+
+CT_TestUpdateAppListStep::CT_TestUpdateAppListStep()
+    {
+    }
+
+CT_TestUpdateAppListStep::~CT_TestUpdateAppListStep()
+    {
+    iApaLsSession.Close();
+    delete iScheduler;    
+    }
+
+
+void CT_TestUpdateAppListStep::TestUpdateAppListWithInvalidArgumentsL()
+    {
+    TApaAppInfo appInfo;
+    TUid uid = {0x10003A3F};
+    TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+    
+    RArray<TApaAppUpdateInfo> updateAppInfo;
+    CleanupClosePushL(updateAppInfo);
+    updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppPresent));
+    iApaLsSession.UpdateAppListL(updateAppInfo);
+    User::After(1000000);
+    ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+
+    updateAppInfo.Reset();
+    updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppNotPresent));
+    iApaLsSession.UpdateAppListL(updateAppInfo);
+    User::After(1000000);
+    ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+
+    updateAppInfo.Reset();
+    updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppInfoChanged));
+    iApaLsSession.UpdateAppListL(updateAppInfo);
+    User::After(3000000);
+    ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+    CleanupStack::PopAndDestroy(&updateAppInfo);
+    }
+
+
+void CT_TestUpdateAppListStep::TestAppInstallAndUninstallationL()
+    {
+    TApaAppInfo appInfo;
+    TUid uid = {0x100048F3};
+    TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+
+    //Install app
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+    TRAPD(err, sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile));
+    
+    ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNone);
+
+    //Uninstall app
+    TRAP(err, sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent));
+    
+    ret = iApaLsSession.GetAppInfo(appInfo,uid);
+    TEST(ret==KErrNotFound);
+    
+    }
+
+
+void CT_TestUpdateAppListStep::TestMultipleAppInstallAndUninstallationL()
+    {
+    TApaAppInfo appInfo;
+    TUid uid1 = {0x102032AB};
+    TUid uid2 = {0x10208183};  
+    TUid uid3 = {0x10208184};  
+    
+    TInt ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+    TEST(ret==KErrNotFound);
+
+    ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+    TEST(ret==KErrNotFound);
+
+    ret = iApaLsSession.GetAppInfo(appInfo,uid3);
+    TEST(ret==KErrNotFound);
+
+    //Install applications
+    CSisFileInstaller sisFileInstaller;
+    INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+    sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTestMultipleAppsSisFile);
+    
+    ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+    TEST(ret==KErrNone);
+   
+    ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+    TEST(ret==KErrNone);
+
+    //uninstall applications
+    sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTestMultipleAppsComponent);
+    
+   
+    ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+    TEST(ret==KErrNotFound);
+
+    ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+    TEST(ret==KErrNotFound);
+    
+    ret = iApaLsSession.GetAppInfo(appInfo,uid3);
+    TEST(ret==KErrNotFound);
+    }
+
+
+TVerdict CT_TestUpdateAppListStep::doTestStepL()
+    {
+    INFO_PRINTF1(_L("Test T_UpdateAppList Started"));
+    
+    // start an active scheduler
+    iScheduler=new(ELeave) CActiveScheduler();
+    CActiveScheduler::Install(iScheduler);
+    
+    // Connect to RApaLsSession
+    User::LeaveIfError(iApaLsSession.Connect());
+    
+    HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestUpdateAppListWithInvalidArgumentsL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestAppInstallAndUninstallationL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestMultipleAppInstallAndUninstallationL(), NO_CLEANUP);    
+    
+    INFO_PRINTF1(_L("Test Finished"));  
+    return TestStepResult();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_updateapplist.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef     __T_UPDATEAPPLIST_H
+#define     __T_UPDATEAPPLIST_H
+
+#include "appfwk_test_appui.h"
+#include "testableapalssession.h"
+#include <apgnotif.h>
+
+_LIT(KT_TestUpdateAppListStep, "T_UpdateAppList");
+
+//! CTestUpdateAppListStep
+/*! 
+  This class is used to test UpdateAppList api in RApaLsSession
+*/
+class CT_TestUpdateAppListStep : public CTestStep
+    {
+public:
+    CT_TestUpdateAppListStep();
+    ~CT_TestUpdateAppListStep();
+    void TestUpdateAppListWithInvalidArgumentsL(); 
+    void TestAppInstallAndUninstallationL();
+    void TestAppUpgradeL();    
+    void TestMultipleAppInstallAndUninstallationL();
+    void TestPackageUpgradeL();
+    void TestInstallInvalidAppL();
+    virtual TVerdict doTestStepL();
+private:
+    RTestableApaLsSession iApaLsSession;
+    CActiveScheduler* iScheduler;    
+    };
+
+#endif
--- a/appfw/apparchitecture/tef/t_winchainChild.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_winchainChild.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -40,7 +40,7 @@
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib appfwk_test_appui.lib
 
 START RESOURCE		t_winchainChild_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/t_winchainLaunch.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/t_winchainLaunch.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -40,7 +40,7 @@
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib appfwk_test_appui.lib
 
 START RESOURCE		t_winchainLaunch_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 SMPSAFE
--- a/appfw/apparchitecture/tef/tapparctestapp_loc.rss	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tapparctestapp_loc.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -30,7 +30,7 @@
 			{
 			caption = "tapparctestapp";
 			number_of_icons = 1;
-			icon_file = "z:\\resource\\apps\\svg_icon.svg";
+			icon_file = "C:\\resource\\apps\\svg_icon.svg";
 			}
 		};
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/tctrlpnlapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	TCtrlPnlApp.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10207f79
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+START RESOURCE	TCtrlPnlApp_reg.rss
+TARGETPATH	/apparctestregfiles
+lang		sc
+END
+
+SOURCEPATH		../tef
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/testapp/testforceregistrationapp1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/testapp/testupdregappuninstallation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/app_ctrl.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"app_CTRL"}, (0x13008ACE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\app_ctrl.exe"-"!:\sys\bin\app_ctrl.exe"
+"\epoc32\data\z\apparctestregfiles\App_CTRL_reg.rsc"-"!:\private\10003a3f\import\apps\App_CTRL_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\App_CTRL.rsc"-"!:\resource\apps\App_CTRL.rsc"
+"\epoc32\data\z\apparctestregfiles\App_ctrl_loc.rsc"-"!:\resource\apps\App_ctrl_loc.rsc"
+"\epoc32\data\z\apparctestregfiles\APP_CTRL.MBM"-"!:\resource\apps\APP_CTRL.MBM"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/app_ctrl2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"app_CTRL2"}, (0x13008ADE), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\app_ctrl2.exe"-"!:\sys\bin\app_ctrl2.exe"
+"\epoc32\data\z\apparctestregfiles\App_CTRL2_reg.rsc"-"!:\private\10003a3f\import\apps\App_CTRL2_reg.rsc"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/corrupted.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"Corrupted"}, (0x10004c5f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\data\z\apparctest\Corrupted_reg.rsc"-"!:\private\10003a3f\import\apps\Corrupted_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/customisedefaulticonapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"CustomiseDefaultIconApp"}, (0x10208181), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\CustomiseDefaultIconApp.exe"-"!:\sys\bin\CustomiseDefaultIconApp.exe"
+"\epoc32\data\z\apparctestregfiles\CustomiseDefaultIconApp_reg.rsc"-"!:\private\10003a3f\import\apps\CustomiseDefaultIconApp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\CustomiseDefaultIconApp_loc.rsc"-"!:\resource\apps\CustomiseDefaultIconApp_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/endtasktestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"EndTaskTestApp"}, (0x10282B33), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\endtasktestapp.exe"-"!:\sys\bin\endtasktestapp.exe"
+"\epoc32\data\z\apparctestregfiles\EndTask_reg.rsc"-"!:\private\10003a3f\import\apps\EndTask_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\EndTaskTestApp.rsc"-"!:\resource\apps\EndTaskTestApp.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/forceregapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegApp1"}, (0xA0001000), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\forceregapp1.exe"-"!:\sys\bin\forceregapp1.exe"
+"\epoc32\data\z\apparctestregfiles\forceregapp1_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp1_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp1.frg1"-"!:\apparctest\forcegtestapp1.frg1", RI
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/forceregapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegApp2"}, (0xA0001001), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\forceregapp2.exe"-"!:\sys\bin\forceregapp2.exe"
+"\epoc32\data\z\apparctestregfiles\forceregapp2_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp2_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp2.frg2"-"!:\apparctest\forcegtestapp2.frg2", RI, RW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/forceregmultipleapps.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegMultipleApps"}, (0xA0001001), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\forceregapp1.exe"-"!:\sys\bin\forceregapp1.exe"
+"\epoc32\data\z\apparctestregfiles\forceregapp1_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp1_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp1.frg1"-"!:\apparctest\forcegtestapp1.frg1", RI
+
+"\epoc32\release\armv5\udeb\forceregapp2.exe"-"!:\sys\bin\forceregapp2.exe"
+"\epoc32\data\z\apparctestregfiles\forceregapp2_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp2_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp2.frg2"-"!:\apparctest\forcegtestapp2.frg2", RI, RW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/m_ctrl_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"m_ctrl_v2"}, (0x13008AEE), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\m_ctrl.exe"-"!:\sys\bin\m_ctrl.exe"
+"\epoc32\data\z\apparctestregfiles\M_CTRL_reg.rsc"-"!:\private\10003a3f\import\apps\M_CTRL_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\M_CTRL.rsc"-"!:\resource\apps\M_CTRL.rsc"
+"\epoc32\data\z\apparctestregfiles\M_CTRL_loc.rsc"-"!:\resource\apps\M_CTRL_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/openservice1app.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"openservice1app"}, (0x10208200), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\openservice1app.exe"-"!:\sys\bin\openservice1app.exe"
+"\epoc32\data\z\apparctestregfiles\openservice1a.rsc"-"!:\private\10003a3f\import\apps\openservice1a.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/openservice2app.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"openservice2app"}, (0x10208201), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\openservice2app.exe"-"!:\sys\bin\openservice2app.exe"
+"\epoc32\data\z\apparctestregfiles\openservice1b.rsc"-"!:\private\10003a3f\import\apps\openservice1b.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp"}, (0x10004c56), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp.exe"-"!:\sys\bin\serverapp.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp2"}, (0x10004c58), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp2.exe"-"!:\sys\bin\serverapp2.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp2_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp2_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp3"}, (0x10004c57), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp3.exe"-"!:\sys\bin\serverapp3.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp3_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp3_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp4.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp4"}, (0x10004c76), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp4.exe"-"!:\sys\bin\serverapp4.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp4_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp4_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp6.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp6"}, (0x10004c55), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp6.exe"-"!:\sys\bin\serverapp6.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp6_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp6_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\serverapp_loc.rsc"-"!:\resource\apps\serverapp_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/serverapp7.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp7"}, (0x10004c54), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\serverapp7.exe"-"!:\sys\bin\serverapp7.exe"
+"\epoc32\data\z\apparctestregfiles\serverapp7_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp7_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/simpleapparctestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"SimpleApparcTestApp"}, (0x12008ACE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\simpleapparctestapp.exe"-"!:\sys\bin\simpleapparctestapp.exe"
+"\epoc32\data\z\apparctestregfiles\SimpleApparcTestApp_Reg.rsc"-"!:\private\10003a3f\import\apps\SimpleApparcTestApp_Reg.rsc"
+"\epoc32\data\z\apparctestregfiles\SimpleApparcTestApp.rsc"-"!:\resource\apps\SimpleApparcTestApp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_dataprioritysystem1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem1"}, (0x10207f7b), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_dataprioritysystem1.exe"-"!:\sys\bin\t_dataprioritysystem1.exe"
+"\epoc32\data\z\apparctestregfiles\T_DataPrioritySystem1_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem1_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_DataPrioritySystem1_loc.rsc"-"!:\resource\apps\T_DataPrioritySystem1_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_dataprioritysystem2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem2"}, (0x10207f7c), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_dataprioritysystem2.exe"-"!:\sys\bin\t_dataprioritysystem2.exe"
+"\epoc32\data\z\apparctestregfiles\T_DataPrioritySystem2_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem2_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_DataPrioritySystem2_loc.rsc"-"!:\resource\apps\T_DataPrioritySystem2_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_dataprioritysystem3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem3"}, (0x10207f7f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\T_DataPrioritySystem3.exe"-"!:\sys\bin\T_DataPrioritySystem3.exe"
+"\epoc32\data\z\apparctestregfiles\T_DataPrioritySystem3_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem3_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_envslots.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_EnvSlots"}, (0x102032AB), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_envslots.exe"-"!:\sys\bin\t_envslots.exe"
+"\epoc32\data\z\apparctestregfiles\T_EnvSlots_reg.rsc"-"!:\private\10003a3f\import\apps\T_EnvSlots_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_EnvSlots_loc.rsc"-"!:\resource\apps\T_EnvSlots_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_groupname.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname"}, (0x10208185), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\T_groupname.exe"-"!:\sys\bin\T_groupname.exe"
+"\epoc32\data\z\apparctestregfiles\T_groupname_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupname_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_groupname_loc.rsc"-"!:\resource\apps\T_groupname_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_groupname_ver1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname_ver1"}, (0x10208183), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\T_groupname_ver1.exe"-"!:\sys\bin\T_groupname_ver1.exe"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever1_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever1_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever1_loc.rsc"-"!:\resource\apps\T_groupnamever1_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_groupname_ver2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname_ver2"}, (0x10208184), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\T_groupname_ver2.exe"-"!:\sys\bin\T_groupname_ver2.exe"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever2_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever2_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever2_loc.rsc"-"!:\resource\apps\T_groupnamever2_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_winchainchild.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"t_winchainChild"}, (0X10009e9f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_winchainchild.exe"-"!:\sys\bin\t_winchainchild.exe"
+"\epoc32\data\z\apparctestregfiles\t_winchainChild_reg.rsc"-"!:\private\10003a3f\import\apps\t_winchainChild_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/t_winchainlaunch.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"t_winchainLaunch"}, (0X10009f9a), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_winchainlaunch.exe"-"!:\sys\bin\t_winchainlaunch.exe"
+"\epoc32\data\z\apparctestregfiles\t_winchainLaunch_reg.rsc"-"!:\private\10003a3f\import\apps\t_winchainLaunch_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tapparctestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TApparcTestApp"}, (0x100048F3), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tapparctestapp.exe"-"!:\sys\bin\tapparctestapp.exe"
+"\epoc32\data\z\apparctestregfiles\tapparctestapp_reg.rsc"-"!:\private\10003a3f\import\apps\tapparctestapp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tapparctestapp.rsc"-"!:\resource\apps\tapparctestapp.rsc"
+"\epoc32\data\z\apparctestregfiles\tapparctestapp_loc.rsc"-"!:\resource\apps\tapparctestapp_loc.rsc"
+"\epoc32\data\z\apparctestregfiles\svg_icon.svg"-"!:\resource\apps\svg_icon.svg"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddable_embedded.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddable_embedded"}, (0x10004c5B), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddable_embedded.dll"-"!:\sys\bin\tappembeddable_embedded.dll"
+"\epoc32\data\z\apparctestregfiles\tappembeddable_embedded.rsc"-"!:\resource\plugins\tappembeddable_embedded.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddable_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddable_standalone"}, (0x10004c48), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddable.exe"-"!:\sys\bin\tappembeddable.exe"
+"\epoc32\data\z\apparctestregfiles\TAppEmbeddable_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddable_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddableonly_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableOnly_v2"}, (0x10004c5C), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddableonly.dll"-"!:\sys\bin\tappembeddableonly.dll"
+"\epoc32\data\z\apparctestregfiles\TAppEmbeddableOnly_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableOnly_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tappembeddableonly.rsc"-"!:\resource\plugins\tappembeddableonly.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddableuinotstandalone_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiNotStandAlone_v2"}, (0x10004c5E), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddableuinotstandalone.dll"-"!:\sys\bin\tappembeddableuinotstandalone.dll"
+"\epoc32\data\z\apparctestregfiles\TAppEmbeddableUiNotStandAlone_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableUiNotStandAlone_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tappembeddableuinotstandalone.rsc"-"!:\resource\plugins\tappembeddableuinotstandalone.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddableuiorstandalone_embedded.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiOrStandAlone_embedded"}, (0x10004c5D), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddableuiorstandalone_embedded.dll"-"!:\sys\bin\tappembeddableuiorstandalone_embedded.dll"
+"\epoc32\data\z\apparctestregfiles\tappembeddableuiorstandalone_embedded.rsc"-"!:\resource\plugins\tappembeddableuiorstandalone_embedded.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappembeddableuiorstandalone_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiOrStandalone_standalone"}, (0x10004c4A), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappembeddableuiorstandalone.exe"-"!:\sys\bin\tappembeddableuiorstandalone.exe"
+"\epoc32\data\z\apparctestregfiles\TAppEmbeddableUiOrStandAlone_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableUiOrStandAlone_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappinstall.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppInstall"}, (0x10207f7d), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\testappinstall.exe"-"!:\sys\bin\testappinstall.exe"
+"\epoc32\data\z\apparctestregfiles\TestAppInstall_reg.rsc"-"!:\apparctest\TestAppInstall_reg.rsc"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tappnotembeddable_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppNotEmbeddable_v2"}, (0x10004c47), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tappnotembeddable.exe"-"!:\sys\bin\tappnotembeddable.exe"
+"\epoc32\data\z\apparctestregfiles\TAppNotEmbeddable_reg.rsc"-"!:\private\10003a3f\import\apps\TAppNotEmbeddable_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tctrlpnlapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TCtrlPnlApp"}, (0x10207f79), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\TCtrlPnlApp.exe"-"!:\sys\bin\TCtrlPnlApp.exe"
+"\epoc32\data\z\apparctestregfiles\TCtrlPnlApp_reg.rsc"-"!:\private\10003a3f\import\apps\TCtrlPnlApp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/testmultipleapps.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestMultipleApps"}, (0x102032ab), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\t_envslots.exe"-"!:\sys\bin\t_envslots.exe"
+"\epoc32\data\z\apparctestregfiles\T_EnvSlots_reg.rsc"-"!:\private\10003a3f\import\apps\T_EnvSlots_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_EnvSlots_loc.rsc"-"!:\resource\apps\T_EnvSlots_loc.rsc"
+
+"\epoc32\release\armv5\udeb\T_groupname_ver1.exe"-"!:\sys\bin\T_groupname_ver1.exe"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever1_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever1_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever1_loc.rsc"-"!:\resource\apps\T_groupnamever1_loc.rsc"
+
+"\epoc32\release\armv5\udeb\T_groupname_ver2.exe"-"!:\sys\bin\T_groupname_ver2.exe"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever2_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever2_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\T_groupnamever2_loc.rsc"-"!:\resource\apps\T_groupnamever2_loc.rsc"
+
Binary file appfw/apparchitecture/tef/testpkg/armv5/testmultipleappsdowngrade.pkg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/testtrustedpriorityapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestTrustedPriorityApp1"}, (0x10207f8D), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\TestTrustedPriorityApp1.exe"-"!:\sys\bin\TestTrustedPriorityApp1.exe"
+"\epoc32\data\z\apparctestregfiles\TestTrustedPriorityApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TestTrustedPriorityApp1_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/testtrustedpriorityapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestTrustedPriorityApp2"}, (0x10207f8F), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\TestTrustedPriorityApp2.exe"-"!:\sys\bin\TestTrustedPriorityApp2.exe"
+"\epoc32\data\z\apparctestregfiles\TestTrustedPriorityApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TestTrustedPriorityApp2_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/testuntrustedpriorityapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestUnTrustedPriorityApp1"}, (0x10207f8C), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\TestUnTrustedPriorityApp1.exe"-"!:\sys\bin\TestUnTrustedPriorityApp1.exe"
+"\epoc32\data\z\apparctestregfiles\TestUnTrustedPriorityApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TestUnTrustedPriorityApp1_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/testuntrustedpriorityapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestUnTrustedPriorityApp2"}, (0xA3010010), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\TestUnTrustedPriorityApp2.exe"-"!:\sys\bin\TestUnTrustedPriorityApp2.exe"
+"\epoc32\data\z\apparctestregfiles\TestUnTrustedPriorityApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TestUnTrustedPriorityApp2_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/ticoncaptionoverride.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ticoncaptionoverride"}, (0x2001B674), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\ticoncaptionoverride.exe"-"!:\sys\bin\ticoncaptionoverride.exe"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride_reg.rsc"-"!:\private\10003a3f\import\apps\ticoncaptionoverride_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride.rsc"-"!:\resource\apps\ticoncaptionoverride.rsc"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride_loc.rsc"-"!:\resource\apps\ticoncaptionoverride_loc.rsc"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride_loc.r01"-"!:\resource\apps\ticoncaptionoverride_loc.r01"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride_loc.r02"-"!:\resource\apps\ticoncaptionoverride_loc.r02"
+"\epoc32\data\z\apparctestregfiles\ticoncaptionoverride_loc.r03"-"!:\resource\apps\ticoncaptionoverride_loc.r03"
+"\epoc32\data\z\apparctestregfiles\ticoncapoverride.mbm"-"!:\resource\apps\ticoncapoverride.mbm"
+"\epoc32\data\z\apparctestregfiles\ticoncapoverride02.m02"-"!:\resource\apps\ticoncapoverride02.m02"
+"\epoc32\data\z\apparctestregfiles\svg_icon.svg"-"!:\resource\apps\svg_icon.svg"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tlargestackapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tlargestackapp"}, (0x10282B28), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tlargestackapp.exe"-"!:\sys\bin\tlargestackapp.exe"
+"\epoc32\data\z\apparctestregfiles\tlargestackapp_reg.rsc"-"!:\private\10003a3f\import\apps\tlargestackapp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tlargestackapp.rsc"-"!:\resource\apps\tlargestackapp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tnnapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TNNApp1"}, (0x10207f92), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tnnapp1.exe"-"!:\sys\bin\tnnapp1.exe"
+"\epoc32\data\z\apparctestregfiles\TNNApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TNNApp1_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tnnapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TNNApp2"}, (0x10207f94), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tnnapp2.exe"-"!:\sys\bin\tnnapp2.exe"
+"\epoc32\data\z\apparctestregfiles\TNNApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TNNApp2_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tnotifydrivesapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tnotifydrivesapp"}, (0xA0003376), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tnotifydrivesapp.exe"-"!:\sys\bin\tnotifydrivesapp.exe"
+"\epoc32\data\z\apparctestregfiles\tnotifydrivesapp_reg.rsc"-"!:\system\data\tnotifydrivesapp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tnotifydrivesapp.rsc"-"!:\system\data\tnotifydrivesapp.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/trapalssessionstartapptestapp_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TRApaLsSessionStartAppTestApp_v2"}, (0x10004c4f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\trapalssessionstartapptestapp.exe"-"!:\sys\bin\trapalssessionstartapptestapp.exe"
+"\epoc32\data\z\apparctestregfiles\TRApaLsSessionStartAppTestApp_reg.rsc"-"!:\private\10003a3f\import\apps\TRApaLsSessionStartAppTestApp_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/trulebasedapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp1"}, (0X1020D6FC), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\trulebasedapp1.exe"-"!:\sys\bin\trulebasedapp1.exe"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp1_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp1_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp1.rsc"-"!:\resource\apps\tRuleBasedApp1.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/trulebasedapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp2"}, (0X1020D6FD), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\trulebasedapp2.exe"-"!:\sys\bin\trulebasedapp2.exe"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp2_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp2_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp2.rsc"-"!:\resource\apps\tRuleBasedApp2.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/trulebasedapp3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp3"}, (0X1020D6FE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\trulebasedapp3.exe"-"!:\sys\bin\trulebasedapp3.exe"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp3_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp3_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp3.rsc"-"!:\resource\apps\tRuleBasedApp3.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/trulebasedapp4.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp4"}, (0x10210F77), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\trulebasedapp4.exe"-"!:\sys\bin\trulebasedapp4.exe"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp4_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp4_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tRuleBasedApp4.rsc"-"!:\resource\apps\tRuleBasedApp4.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tstapp_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,47 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TSTAPP_standalone"}, (10), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tstapp.exe"-"!:\sys\bin\tstapp.exe"
+"\epoc32\data\z\apparctestregfiles\tstapp_reg.rsc"-"!:\private\10003a3f\import\apps\tstapp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.rsc"-"!:\resource\apps\tstapp_loc.rsc"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.r01"-"!:\resource\apps\tstapp_loc.r01"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.r02"-"!:\resource\apps\tstapp_loc.r02"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.r03"-"!:\resource\apps\tstapp_loc.r03"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.r04"-"!:\resource\apps\tstapp_loc.r04"
+"\epoc32\data\z\apparctestregfiles\tstapp_loc.r05"-"!:\resource\apps\tstapp_loc.r05"
+"\epoc32\data\z\apparctestregfiles\TSTAPP.rsc"-"!:\resource\apps\TSTAPP.rsc"
+"\epoc32\data\z\apparctestregfiles\tstapp.mbm"-"!:\resource\apps\tstapp.mbm"
+"\epoc32\data\z\apparctestregfiles\tstappview01.m01"-"!:\resource\apps\tstappview01.m01"
+"\epoc32\data\z\apparctestregfiles\tstappview02.k"-"!:\resource\apps\tstappview02.k"
+"\epoc32\data\z\apparctestregfiles\tstappviewneg.xyz"-"!:\resource\apps\tstappviewneg.xyz"
+"\epoc32\data\z\apparctestregfiles\tstappviewneg.mbm"-"!:\resource\apps\tstappviewneg.mbm"
+"\epoc32\data\z\apparctestregfiles\tstappview"-"!:\resource\apps\tstappview"
+"\epoc32\data\z\apparctestregfiles\tstapp02.m02"-"!:\resource\apps\tstapp02.m02"
+"\epoc32\data\z\apparctestregfiles\tstappview01.m02"-"!:\resource\apps\tstappview01.m02"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tstartdocapp_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TStartDocApp_v2"}, (0x10004c4d), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tstartdocapp.exe"-"!:\sys\bin\tstartdocapp.exe"
+"\epoc32\data\z\apparctestregfiles\TStartDocApp_reg.rsc"-"!:\private\10003a3f\import\apps\TStartDocApp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/tupgradeiconapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tupgradeiconapp"}, (0xA0003195), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\tupgradeiconapp.exe"-"!:\sys\bin\tupgradeiconapp.exe"
+"\epoc32\data\z\apparctestregfiles\tupgradeiconapp_reg.rsc"-"!:\private\10003a3f\import\apps\tupgradeiconapp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\tupgradeiconapp.rsc"-"!:\resource\apps\tupgradeiconapp.rsc"
+"\epoc32\data\z\apparctestregfiles\tupgradeiconapp.mbm"-"!:\resource\apps\tupgradeiconapp.mbm"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/unproctecteduidapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"UnProctectedUidApp"}, (0xA0001C5E), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\unproctecteduidapp.exe"-"!:\sys\bin\unproctecteduidapp.exe"
+"\epoc32\data\z\apparctestregfiles\UnProctectedUidApp_reg.rsc"-"!:\private\10003a3f\import\apps\UnProctectedUidApp_reg.rsc"
+"\epoc32\data\z\apparctestregfiles\UnProctectedUidApp.rsc"-"!:\resource\apps\UnProctectedUidApp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/armv5/zerosizedicontestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"zerosizedicontestapp"}, (0xABCD0000), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\armv5\udeb\zerosizedicontestapp.exe"-"!:\sys\bin\zerosizedicontestapp.exe"
+"\epoc32\data\z\apparctest\zerosizedicon_reg.rsc"-"!:\private\10003a3f\import\apps\zerosizedicon_reg.rsc"
+"\epoc32\data\z\apparctest\zerosizedicon_loc.rsc"-"!:\resource\apps\zerosizedicon_loc.rsc"
+"\epoc32\data\z\apparctestregfiles\zerosizedicon.mbm"-"!:\resource\apps\zerosizedicon.mbm"
+
+
Binary file appfw/apparchitecture/tef/testpkg/nokia_rndcert_02.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/nokia_rndcert_02.key	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
+uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
+vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
+AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
+REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
+/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
+s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
+sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
+pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
+VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
+P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
+1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
+1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/preparesis.fil	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+# Build WLDCOMP, a strange WINC/Win32 hybrid
+#
+
+!IF "$(PLATFORM)" == "WINSCW"
+TOOLNAME=genbackupmeta
+SRCDIR=..\genbackupmeta
+
+!if "$(CFG)" == "REL"
+VC_CFG="$(TOOLNAME) - Win32 Release"
+CFG=UREL
+!else
+VC_CFG="$(TOOLNAME) - Win32 Debug"
+CFG=UDEB
+!endif
+
+!ENDIF
+
+FINAL :
+!IF "$(PLATFORM)" == "GCCXML" || "$(PLATFORM)" == "TOOLS"
+	cd
+	echo ----------------
+	echo  Do nothing ...
+	echo ----------------
+!ELSE
+	cd
+	echo ---------------------------
+	echo Building test exes sis files...
+	echo ---------------------------
+
+	perl preparesis.pl $(PLATFORM) $(CFG)
+!ENDIF
+
+DO_NOTHING:
+	rem do nothing
+
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE : DO_NOTHING
+FREEZE : DO_NOTHING
+LIB : DO_NOTHING
+RESOURCE : DO_NOTHING
+CLEANLIB : DO_NOTHING
+MAKEDATA : DO_NOTHING
+
+RELEASABLES :
+	echo $(TOOL)
+
+SAVESPACE : BLD
+
+BLD : MAKEDATA
+
+CLEAN : 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/preparesis.pl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,109 @@
+#
+# 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 the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+# -----------------------------------------------------------------------
+
+# sis files for
+my $platform = lc($ARGV[0]);
+
+die "EPOCROOT not defined" if !defined ($ENV{EPOCROOT});
+my $makesis = "$ENV{EPOCROOT}epoc32\\tools\\makesis.exe";
+my $signsis = "$ENV{EPOCROOT}epoc32\\tools\\signsis.exe";
+if ( ! -x $makesis || ! -x $signsis ) {
+   die "$makesis and $signsis are not executable";
+}
+
+my $sign_cert = "$ENV{EPOCROOT}epoc32\\tools\\Nokia_RnDCert_02.der";
+my $sign_key = "$ENV{EPOCROOT}epoc32\\tools\\Nokia_RnDCert_02.key";
+
+if ($platform =~/winscw/i)
+{
+	my $winscwpkgdir = "winscw";
+	my $winscwdir = "winscwsis";
+
+	# export path for winscw sis files
+	system("mkdir $winscwdir\\");
+	my $target_dir = "$ENV{EPOCROOT}epoc32\\release\\winscw\\udeb\\z\\apparctest\\apparctestsisfiles\\";
+	system("mkdir $target_dir\\");
+
+	# get list of package files for winscw
+	opendir DIR, $winscwpkgdir;
+	my @pkgfiles = grep (/\.pkg/, readdir(DIR));
+	closedir DIR;
+
+	# create and sign each sis file for winscw
+	my $target;	# needs to be seen by continue
+	foreach my $entry (@pkgfiles)
+		{
+		print "\n";
+		$entry =~ s/\.pkg//;	# remove .pkg suffix
+		my $pkg_file = "$winscwpkgdir\\$entry.pkg";
+		
+		$target = "$target_dir\\$entry.sis";
+
+		my $make_cmd = "$makesis $pkg_file $winscwdir\\$entry-tmp.sis";
+		print "$make_cmd\n";
+		system($make_cmd);
+
+		my $sign_cmd = "$signsis $winscwdir\\$entry-tmp.sis $winscwdir\\$entry.sis $sign_cert $sign_key";
+		print "\n$sign_cmd\n";
+		system($sign_cmd);
+
+		my $copy_cmd = "copy /y $winscwdir\\$entry.sis $target";
+		print "\n$copy_cmd\n";
+		system($copy_cmd);
+		}
+}
+
+if ($platform =~ /armv5/i)
+{
+	my $armv5pkgdir = "armv5";
+	my $armv5dir = "armv5sis";
+
+	# export path for armv5 sis files
+	system("mkdir $armv5dir\\");
+	my $target_dir_armv5 = "$ENV{EPOCROOT}epoc32\\data\\Z\\System\\apparctestsisfiles\\";
+	system("mkdir $target_dir_armv5\\");
+
+	# get list of package files for armv5
+	opendir DIR, $armv5pkgdir;
+	my @armv5pkgfiles = grep (/\.pkg/, readdir(DIR));
+	closedir DIR;
+
+	# create and sign each sis file for armv5
+	my $targetarmv5;	# needs to be seen by continue
+	foreach my $entry1 (@armv5pkgfiles)
+		{
+		$entry1 =~ s/\.pkg//;	# remove .pkg suffix
+		my $pkg_file = "$armv5pkgdir\\$entry1.pkg";
+		
+		$targetarmv5 = "$target_dir_armv5\\$entry1.sis";
+
+		my $make_cmd = "$makesis $pkg_file $armv5dir\\$entry1-tmp.sis";
+		print "$make_cmd\n";
+		system($make_cmd);
+
+		my $sign_cmd = "$signsis $armv5dir\\$entry1-tmp.sis $armv5dir\\$entry1.sis $sign_cert $sign_key";
+		print "\n$sign_cmd\n";
+		system($sign_cmd);
+
+		my $copy_cmd = "copy /y $armv5dir\\$entry1.sis $targetarmv5";
+		print "\n$copy_cmd\n";
+		system($copy_cmd);
+		}
+}
+
+# -----------------------------------------------------------------------
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/preparesis_stub.fil	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+# Build WLDCOMP, a strange WINC/Win32 hybrid
+#
+
+FINAL :
+!IF "$(PLATFORM)" == "GCCXML" || "$(PLATFORM)" == "TOOLS"
+	cd
+	echo ----------------
+	echo  Do nothing ...
+	echo ----------------
+!ELSE
+	cd
+	echo ---------------------------
+	echo Building test exes sis files...
+	echo ---------------------------
+
+	perl preparesis_stub.pl
+!ENDIF
+
+DO_NOTHING:
+	rem do nothing
+
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE : DO_NOTHING
+FREEZE : DO_NOTHING
+LIB : DO_NOTHING
+RESOURCE : DO_NOTHING
+CLEANLIB : DO_NOTHING
+MAKEDATA : DO_NOTHING
+
+RELEASABLES :
+	echo $(TOOL)
+
+SAVESPACE : BLD
+
+BLD : MAKEDATA
+
+CLEAN : 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/preparesis_stub.pl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,74 @@
+#
+# 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 the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+# -----------------------------------------------------------------------
+
+# sis files for
+my $stubpkgdir = "stub_sis";
+
+my $stubdir = "stubsis";
+
+die "EPOCROOT not defined" if !defined ($ENV{EPOCROOT});
+my $makesis = "$ENV{EPOCROOT}epoc32\\tools\\makesis.exe";
+my $option = "-s";
+my $signsis = "$ENV{EPOCROOT}epoc32\\tools\\signsis.exe";
+if ( ! -x $makesis || ! -x $signsis ) {
+   die "$makesis and $signsis are not executable";
+}
+
+my $sign_cert = "$ENV{EPOCROOT}epoc32\\tools\\Nokia_RnDCert_02.der";
+my $sign_key = "$ENV{EPOCROOT}epoc32\\tools\\Nokia_RnDCert_02.key";
+
+# export path for stub sis files
+system("mkdir $stubdir\\");
+my $target_winscw = "$ENV{EPOCROOT}epoc32\\release\\winscw\\udeb\\z\\system\\install\\";
+my $target_armv5 = "$ENV{EPOCROOT}epoc32\\data\\z\\system\\install\\";
+system("mkdir $target_winscw\\");
+system("mkdir $target_armv5\\");
+
+# get list of package files for stub
+opendir DIR, $stubpkgdir;
+my @pkgfiles = grep (/\.pkg/, readdir(DIR));
+closedir DIR;
+
+# create each stub sis file
+my $target;	# needs to be seen by continue
+my $target2;
+foreach my $entry (@pkgfiles)
+	{
+	print "\n";
+	$entry =~ s/\.pkg//;	# remove .pkg suffix
+	my $pkg_file = "$stubpkgdir\\$entry.pkg";
+	
+	$target = "$target_winscw\\$entry.sis";
+	$target2 = "$target_armv5\\$entry.sis";
+
+	my $make_cmd = "$makesis $option $pkg_file $stubdir\\$entry.sis";
+	print "$make_cmd\n";
+	system($make_cmd);
+
+	my $copy_cmd = "copy /y $stubdir\\$entry.sis $target";
+	print "\n$copy_cmd\n";
+	system($copy_cmd);
+
+	my $copy_cmd = "copy /y $stubdir\\$entry.sis $target2";
+	print "\n$copy_cmd\n";
+	system($copy_cmd);
+	}
+
+
+
+# -----------------------------------------------------------------------
+
Binary file appfw/apparchitecture/tef/testpkg/scr.db has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/stub_sis/app_ctrl2_stub.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"app_CTRL2"}, (0x13008ADE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+""-"!:\sys\bin\app_ctrl2.exe"
+""-"!:\private\10003a3f\import\apps\App_CTRL2_reg.rsc"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/stub_sis/m_ctrl_v2_stub.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"m_ctrl_v2"}, (0x13008AEE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+""-"!:\sys\bin\m_ctrl.exe"
+""-"!:\private\10003a3f\import\apps\M_CTRL_reg.rsc"
+""-"!:\resource\apps\M_CTRL.rsc"
+""-"!:\resource\apps\M_CTRL_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/stub_sis/tstapp_standalone_stub.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,47 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TSTAPP_standalone"}, (10), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+""-"!:\sys\bin\tstapp.exe"
+""-"!:\private\10003a3f\import\apps\tstapp_reg.rsc"
+""-"!:\resource\apps\tstapp_loc.rsc"
+""-"!:\resource\apps\tstapp_loc.r01"
+""-"!:\resource\apps\tstapp_loc.r02"
+""-"!:\resource\apps\tstapp_loc.r03"
+""-"!:\resource\apps\tstapp_loc.r04"
+""-"!:\resource\apps\tstapp_loc.r05"
+""-"!:\resource\apps\TSTAPP.rsc"
+""-"!:\resource\apps\tstapp.mbm"
+""-"!:\resource\apps\tstappview01.m01"
+""-"!:\resource\apps\tstappview02.k"
+""-"!:\resource\apps\tstappviewneg.xyz"
+""-"!:\resource\apps\tstappviewneg.mbm"
+""-"!:\resource\apps\tstappview"
+""-"!:\resource\apps\tstapp02.m02"
+""-"!:\resource\apps\tstappview01.m02"
+
+
Binary file appfw/apparchitecture/tef/testpkg/swicertstore.dat has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/app_ctrl.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"app_CTRL"}, (0x13008ACE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\app_ctrl.exe"-"!:\sys\bin\app_ctrl.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\App_CTRL_reg.rsc"-"!:\private\10003a3f\import\apps\App_CTRL_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\App_CTRL.rsc"-"!:\resource\apps\App_CTRL.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\App_ctrl_loc.rsc"-"!:\resource\apps\App_ctrl_loc.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\APP_CTRL.MBM"-"!:\resource\apps\APP_CTRL.MBM"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/app_ctrl2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"app_CTRL2"}, (0x13008ADE), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\app_ctrl2.exe"-"!:\sys\bin\app_ctrl2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\App_CTRL2_reg.rsc"-"!:\private\10003a3f\import\apps\App_CTRL2_reg.rsc"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/corrupted.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"Corrupted"}, (0x10004c5f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\z\apparctest\Corrupted_reg.rsc"-"!:\private\10003a3f\import\apps\Corrupted_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/customisedefaulticonapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"CustomiseDefaultIconApp"}, (0x10208181), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\CustomiseDefaultIconApp.exe"-"!:\sys\bin\CustomiseDefaultIconApp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\CustomiseDefaultIconApp_reg.rsc"-"!:\private\10003a3f\import\apps\CustomiseDefaultIconApp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\CustomiseDefaultIconApp_loc.rsc"-"!:\resource\apps\CustomiseDefaultIconApp_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/endtasktestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"EndTaskTestApp"}, (0x10282B33), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\endtasktestapp.exe"-"!:\sys\bin\endtasktestapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\EndTask_reg.rsc"-"!:\private\10003a3f\import\apps\EndTask_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\EndTaskTestApp.rsc"-"!:\resource\apps\EndTaskTestApp.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/forceregapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegApp1"}, (0xA0001000), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\forceregapp1.exe"-"!:\sys\bin\forceregapp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\forceregapp1_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp1_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp1.frg1"-"!:\apparctest\forcegtestapp1.frg1", RI
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/forceregapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegApp2"}, (0xA0001001), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\forceregapp2.exe"-"!:\sys\bin\forceregapp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\forceregapp2_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp2_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp2.frg2"-"!:\apparctest\forcegtestapp2.frg2", RI, RW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/forceregmultipleapps.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ForceRegMultipleApps"}, (0xA0001001), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\forceregapp1.exe"-"!:\sys\bin\forceregapp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\forceregapp1_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp1_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp1.frg1"-"!:\apparctest\forcegtestapp1.frg1", RI
+
+"\epoc32\release\winscw\udeb\forceregapp2.exe"-"!:\sys\bin\forceregapp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\forceregapp2_reg.rsc"-"!:\private\10003a3f\import\apps\forceregapp2_reg.rsc"
+"\epoc32\data\z\apparctest\forcegtestapp2.frg2"-"!:\apparctest\forcegtestapp2.frg2", RI, RW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/m_ctrl_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"m_ctrl_v2"}, (0x13008AEE), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\m_ctrl.exe"-"!:\sys\bin\m_ctrl.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\M_CTRL_reg.rsc"-"!:\private\10003a3f\import\apps\M_CTRL_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\M_CTRL.rsc"-"!:\resource\apps\M_CTRL.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\M_CTRL_loc.rsc"-"!:\resource\apps\M_CTRL_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/openservice1app.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"openservice1app"}, (0x10208200), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\openservice1app.exe"-"!:\sys\bin\openservice1app.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\openservice1a.rsc"-"!:\private\10003a3f\import\apps\openservice1a.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/openservice2app.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"openservice2app"}, (0x10208201), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\openservice2app.exe"-"!:\sys\bin\openservice2app.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\openservice1b.rsc"-"!:\private\10003a3f\import\apps\openservice1b.rsc"
Binary file appfw/apparchitecture/tef/testpkg/winscw/parentprocess.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp"}, (0x10004c56), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp.exe"-"!:\sys\bin\serverapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp2"}, (0x10004c58), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp2.exe"-"!:\sys\bin\serverapp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp2_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp2_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp3"}, (0x10004c57), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp3.exe"-"!:\sys\bin\serverapp3.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp3_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp3_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp4.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp4"}, (0x10004c76), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp4.exe"-"!:\sys\bin\serverapp4.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp4_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp4_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp6.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp6"}, (0x10004c55), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp6.exe"-"!:\sys\bin\serverapp6.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp6_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp6_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp_loc.rsc"-"!:\resource\apps\serverapp_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/serverapp7.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"serverapp7"}, (0x10004c54), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\serverapp7.exe"-"!:\sys\bin\serverapp7.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\serverapp7_reg.rsc"-"!:\private\10003a3f\import\apps\serverapp7_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/simpleapparctestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"SimpleApparcTestApp"}, (0x12008ACE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\simpleapparctestapp.exe"-"!:\sys\bin\simpleapparctestapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\SimpleApparcTestApp_Reg.rsc"-"!:\private\10003a3f\import\apps\SimpleApparcTestApp_Reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\SimpleApparcTestApp.rsc"-"!:\resource\apps\SimpleApparcTestApp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_dataprioritysystem1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem1"}, (0x10207f7b), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_dataprioritysystem1.exe"-"!:\sys\bin\t_dataprioritysystem1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_DataPrioritySystem1_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem1_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_DataPrioritySystem1_loc.rsc"-"!:\resource\apps\T_DataPrioritySystem1_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_dataprioritysystem2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem2"}, (0x10207f7c), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_dataprioritysystem2.exe"-"!:\sys\bin\t_dataprioritysystem2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_DataPrioritySystem2_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem2_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_DataPrioritySystem2_loc.rsc"-"!:\resource\apps\T_DataPrioritySystem2_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_dataprioritysystem3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_DataPrioritySystem3"}, (0x10207f7f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\T_DataPrioritySystem3.exe"-"!:\sys\bin\T_DataPrioritySystem3.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_DataPrioritySystem3_reg.rsc"-"!:\private\10003a3f\import\apps\T_DataPrioritySystem3_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_envslots.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_EnvSlots"}, (0x102032AB), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_envslots.exe"-"!:\sys\bin\t_envslots.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_EnvSlots_reg.rsc"-"!:\private\10003a3f\import\apps\T_EnvSlots_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_EnvSlots_loc.rsc"-"!:\resource\apps\T_EnvSlots_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_groupname.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname"}, (0x10208185), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\T_groupname.exe"-"!:\sys\bin\T_groupname.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupname_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupname_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupname_loc.rsc"-"!:\resource\apps\T_groupname_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_groupname_ver1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname_ver1"}, (0x10208183), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\T_groupname_ver1.exe"-"!:\sys\bin\T_groupname_ver1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever1_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever1_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever1_loc.rsc"-"!:\resource\apps\T_groupnamever1_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_groupname_ver2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"T_groupname_ver2"}, (0x10208184), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\T_groupname_ver2.exe"-"!:\sys\bin\T_groupname_ver2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever2_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever2_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever2_loc.rsc"-"!:\resource\apps\T_groupnamever2_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_winchainchild.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"t_winchainChild"}, (0X10009e9f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_winchainchild.exe"-"!:\sys\bin\t_winchainchild.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\t_winchainChild_reg.rsc"-"!:\private\10003a3f\import\apps\t_winchainChild_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/t_winchainlaunch.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"t_winchainLaunch"}, (0X10009f9a), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_winchainlaunch.exe"-"!:\sys\bin\t_winchainlaunch.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\t_winchainLaunch_reg.rsc"-"!:\private\10003a3f\import\apps\t_winchainLaunch_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tapparctestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TApparcTestApp"}, (0x100048F3), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tapparctestapp.exe"-"!:\sys\bin\tapparctestapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tapparctestapp_reg.rsc"-"!:\private\10003a3f\import\apps\tapparctestapp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tapparctestapp.rsc"-"!:\resource\apps\tapparctestapp.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tapparctestapp_loc.rsc"-"!:\resource\apps\tapparctestapp_loc.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\svg_icon.svg"-"!:\resource\apps\svg_icon.svg"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddable_embedded.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddable_embedded"}, (0x10004c5B), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddable_embedded.dll"-"!:\sys\bin\tappembeddable_embedded.dll"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tappembeddable_embedded.rsc"-"!:\resource\plugins\tappembeddable_embedded.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddable_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddable_standalone"}, (0x10004c48), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddable.exe"-"!:\sys\bin\tappembeddable.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TAppEmbeddable_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddable_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddableonly_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableOnly_v2"}, (0x10004c5C), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddableonly.dll"-"!:\sys\bin\tappembeddableonly.dll"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TAppEmbeddableOnly_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableOnly_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tappembeddableonly.rsc"-"!:\resource\plugins\tappembeddableonly.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddableuinotstandalone_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiNotStandAlone_v2"}, (0x10004c5E), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddableuinotstandalone.dll"-"!:\sys\bin\tappembeddableuinotstandalone.dll"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TAppEmbeddableUiNotStandAlone_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableUiNotStandAlone_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tappembeddableuinotstandalone.rsc"-"!:\resource\plugins\tappembeddableuinotstandalone.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddableuiorstandalone_embedded.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiOrStandAlone_embedded"}, (0x10004c5D), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddableuiorstandalone_embedded.dll"-"!:\sys\bin\tappembeddableuiorstandalone_embedded.dll"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tappembeddableuiorstandalone_embedded.rsc"-"!:\resource\plugins\tappembeddableuiorstandalone_embedded.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappembeddableuiorstandalone_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppEmbeddableUiOrStandalone_standalone"}, (0x10004c4A), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappembeddableuiorstandalone.exe"-"!:\sys\bin\tappembeddableuiorstandalone.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TAppEmbeddableUiOrStandAlone_reg.rsc"-"!:\private\10003a3f\import\apps\TAppEmbeddableUiOrStandAlone_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappinstall.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppInstall"}, (0x10207f7d), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\testappinstall.exe"-"!:\sys\bin\testappinstall.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TestAppInstall_reg.rsc"-"!:\apparctest\TestAppInstall_reg.rsc"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tappnotembeddable_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TAppNotEmbeddable_v2"}, (0x10004c47), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tappnotembeddable.exe"-"!:\sys\bin\tappnotembeddable.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TAppNotEmbeddable_reg.rsc"-"!:\private\10003a3f\import\apps\TAppNotEmbeddable_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tctrlpnlapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TCtrlPnlApp"}, (0x10207f79), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\TCtrlPnlApp.exe"-"!:\sys\bin\TCtrlPnlApp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TCtrlPnlApp_reg.rsc"-"!:\private\10003a3f\import\apps\TCtrlPnlApp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/testmultipleapps.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestMultipleApps"}, (0x102032ab), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\t_envslots.exe"-"!:\sys\bin\t_envslots.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_EnvSlots_reg.rsc"-"!:\private\10003a3f\import\apps\T_EnvSlots_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_EnvSlots_loc.rsc"-"!:\resource\apps\T_EnvSlots_loc.rsc"
+
+"\epoc32\release\winscw\udeb\T_groupname_ver1.exe"-"!:\sys\bin\T_groupname_ver1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever1_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever1_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever1_loc.rsc"-"!:\resource\apps\T_groupnamever1_loc.rsc"
+
+"\epoc32\release\winscw\udeb\T_groupname_ver2.exe"-"!:\sys\bin\T_groupname_ver2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever2_reg.rsc"-"!:\private\10003a3f\import\apps\T_groupnamever2_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\T_groupnamever2_loc.rsc"-"!:\resource\apps\T_groupnamever2_loc.rsc"
+
Binary file appfw/apparchitecture/tef/testpkg/winscw/testmultipleappsdowngrade.pkg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/testtrustedpriorityapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestTrustedPriorityApp1"}, (0x10207f8D), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\TestTrustedPriorityApp1.exe"-"!:\sys\bin\TestTrustedPriorityApp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TestTrustedPriorityApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TestTrustedPriorityApp1_reg.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/testtrustedpriorityapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestTrustedPriorityApp2"}, (0x10207f8F), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\TestTrustedPriorityApp2.exe"-"!:\sys\bin\TestTrustedPriorityApp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TestTrustedPriorityApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TestTrustedPriorityApp2_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/testuntrustedpriorityapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestUnTrustedPriorityApp1"}, (0x10207f8C), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\TestUnTrustedPriorityApp1.exe"-"!:\sys\bin\TestUnTrustedPriorityApp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TestUnTrustedPriorityApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TestUnTrustedPriorityApp1_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/testuntrustedpriorityapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TestUnTrustedPriorityApp2"}, (0xA3010010), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\TestUnTrustedPriorityApp2.exe"-"!:\sys\bin\TestUnTrustedPriorityApp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TestUnTrustedPriorityApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TestUnTrustedPriorityApp2_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/ticoncaptionoverride.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"ticoncaptionoverride"}, (0x2001B674), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\ticoncaptionoverride.exe"-"!:\sys\bin\ticoncaptionoverride.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride_reg.rsc"-"!:\private\10003a3f\import\apps\ticoncaptionoverride_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride.rsc"-"!:\resource\apps\ticoncaptionoverride.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride_loc.rsc"-"!:\resource\apps\ticoncaptionoverride_loc.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride_loc.r01"-"!:\resource\apps\ticoncaptionoverride_loc.r01"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride_loc.r02"-"!:\resource\apps\ticoncaptionoverride_loc.r02"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncaptionoverride_loc.r03"-"!:\resource\apps\ticoncaptionoverride_loc.r03"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncapoverride.mbm"-"!:\resource\apps\ticoncapoverride.mbm"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\ticoncapoverride02.m02"-"!:\resource\apps\ticoncapoverride02.m02"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\svg_icon.svg"-"!:\resource\apps\svg_icon.svg"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tlargestackapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tlargestackapp"}, (0x10282B28), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tlargestackapp.exe"-"!:\sys\bin\tlargestackapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tlargestackapp_reg.rsc"-"!:\private\10003a3f\import\apps\tlargestackapp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tlargestackapp.rsc"-"!:\resource\apps\tlargestackapp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tnnapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TNNApp1"}, (0x10207f92), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tnnapp1.exe"-"!:\sys\bin\tnnapp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TNNApp1_reg.rsc"-"!:\private\10003a3f\import\apps\TNNApp1_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tnnapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TNNApp2"}, (0x10207f94), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tnnapp2.exe"-"!:\sys\bin\tnnapp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TNNApp2_reg.rsc"-"!:\private\10003a3f\import\apps\TNNApp2_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tnotifydrivesapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tnotifydrivesapp"}, (0xA0003376), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tnotifydrivesapp.exe"-"!:\sys\bin\tnotifydrivesapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tnotifydrivesapp_reg.rsc"-"!:\system\data\tnotifydrivesapp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tnotifydrivesapp.rsc"-"!:\system\data\tnotifydrivesapp.rsc"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/trapalssessionstartapptestapp_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TRApaLsSessionStartAppTestApp_v2"}, (0x10004c4f), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\trapalssessionstartapptestapp.exe"-"!:\sys\bin\trapalssessionstartapptestapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TRApaLsSessionStartAppTestApp_reg.rsc"-"!:\private\10003a3f\import\apps\TRApaLsSessionStartAppTestApp_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/trulebasedapp1.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp1"}, (0X1020D6FC), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\trulebasedapp1.exe"-"!:\sys\bin\trulebasedapp1.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp1_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp1_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp1.rsc"-"!:\resource\apps\tRuleBasedApp1.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/trulebasedapp2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp2"}, (0X1020D6FD), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\trulebasedapp2.exe"-"!:\sys\bin\trulebasedapp2.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp2_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp2_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp2.rsc"-"!:\resource\apps\tRuleBasedApp2.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/trulebasedapp3.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp3"}, (0X1020D6FE), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\trulebasedapp3.exe"-"!:\sys\bin\trulebasedapp3.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp3_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp3_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp3.rsc"-"!:\resource\apps\tRuleBasedApp3.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/trulebasedapp4.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tRuleBasedApp4"}, (0x10210F77), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\trulebasedapp4.exe"-"!:\sys\bin\trulebasedapp4.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp4_reg.rsc"-"!:\private\10003a3f\import\apps\tRuleBasedApp4_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tRuleBasedApp4.rsc"-"!:\resource\apps\tRuleBasedApp4.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tstapp_standalone.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,47 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TSTAPP_standalone"}, (10), 1, 0, 0, TYPE=SA, RU
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tstapp.exe"-"!:\sys\bin\tstapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_reg.rsc"-"!:\private\10003a3f\import\apps\tstapp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.rsc"-"!:\resource\apps\tstapp_loc.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.r01"-"!:\resource\apps\tstapp_loc.r01"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.r02"-"!:\resource\apps\tstapp_loc.r02"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.r03"-"!:\resource\apps\tstapp_loc.r03"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.r04"-"!:\resource\apps\tstapp_loc.r04"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp_loc.r05"-"!:\resource\apps\tstapp_loc.r05"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TSTAPP.rsc"-"!:\resource\apps\TSTAPP.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp.mbm"-"!:\resource\apps\tstapp.mbm"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappview01.m01"-"!:\resource\apps\tstappview01.m01"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappview02.k"-"!:\resource\apps\tstappview02.k"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappviewneg.xyz"-"!:\resource\apps\tstappviewneg.xyz"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappviewneg.mbm"-"!:\resource\apps\tstappviewneg.mbm"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappview"-"!:\resource\apps\tstappview"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstapp02.m02"-"!:\resource\apps\tstapp02.m02"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tstappview01.m02"-"!:\resource\apps\tstappview01.m02"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tstartdocapp_v2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"TStartDocApp_v2"}, (0x10004c4d), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tstartdocapp.exe"-"!:\sys\bin\tstartdocapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\TStartDocApp_reg.rsc"-"!:\private\10003a3f\import\apps\TStartDocApp_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/tupgradeiconapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"tupgradeiconapp"}, (0xA0003195), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\tupgradeiconapp.exe"-"!:\sys\bin\tupgradeiconapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tupgradeiconapp_reg.rsc"-"!:\private\10003a3f\import\apps\tupgradeiconapp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tupgradeiconapp.rsc"-"!:\resource\apps\tupgradeiconapp.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\tupgradeiconapp.mbm"-"!:\resource\apps\tupgradeiconapp.mbm"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/unproctecteduidapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"UnProctectedUidApp"}, (0xA0001C5E), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\unproctecteduidapp.exe"-"!:\sys\bin\unproctecteduidapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\UnProctectedUidApp_reg.rsc"-"!:\private\10003a3f\import\apps\UnProctectedUidApp_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\UnProctectedUidApp.rsc"-"!:\resource\apps\UnProctectedUidApp.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testpkg/winscw/zerosizedicontestapp.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+
+;Languages
+&EN
+
+;Header
+; SA = Symbian Application
+; RU = Rom Upgrade
+#{"zerosizedicontestapp"}, (0xABCD0000), 1, 0, 0, TYPE=SA
+
+%{"Nokia India Pvt Ltd"}
+:"Nokia India Pvt Ltd"
+
+"\epoc32\release\winscw\udeb\zerosizedicontestapp.exe"-"!:\sys\bin\zerosizedicontestapp.exe"
+"\epoc32\release\winscw\udeb\z\apparctest\zerosizedicon_reg.rsc"-"!:\private\10003a3f\import\apps\zerosizedicon_reg.rsc"
+"\epoc32\release\winscw\udeb\z\apparctest\zerosizedicon_loc.rsc"-"!:\resource\apps\zerosizedicon_loc.rsc"
+"\epoc32\release\winscw\udeb\z\apparctestregfiles\zerosizedicon.mbm"-"!:\resource\apps\zerosizedicon.mbm"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testtrustedpriorityapp1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	TestTrustedPriorityApp1.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10207f8D
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application exe registration resource file
+resource  	TestTrustedPriorityApp1_reg.rss
+start resource 	TestTrustedPriorityApp1_reg.rss
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+SOURCEPATH		../tef
+// SOURCE T_RApaLsSessionStep.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testtrustedpriorityapp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	TestTrustedPriorityApp2.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10207f8F
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application exe registration resource file
+resource  	TestTrustedPriorityApp2_reg.rss
+start resource 	TestTrustedPriorityApp2_reg.rss
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+SOURCEPATH		../tef
+// SOURCE T_RApaLsSessionStep.cpp T_DataTypeMappingWithSid1.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testuntrustedpriorityapp1.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	TestUnTrustedPriorityApp1.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0x10207f8C
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application exe registration resource file
+resource  	TestUnTrustedPriorityApp1_reg.rss
+start resource 	TestUnTrustedPriorityApp1_reg.rss
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+SOURCEPATH		../tef
+// SOURCE T_RApaLsSessionStep.cpp T_DataTypeMappingWithSid1.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/testuntrustedpriorityapp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+// 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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        	TestUnTrustedPriorityApp2.exe
+TARGETTYPE    	exe
+UID           	0x100039CE 0xA3010010
+VENDORID  	0x70000001
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+
+// Application exe registration resource file
+resource  	TestUnTrustedPriorityApp2_reg.rss
+start resource 	TestUnTrustedPriorityApp2_reg.rss
+targetpath 	/apparctestregfiles
+lang		sc
+end
+
+SOURCEPATH		../tef
+// SOURCE T_RApaLsSessionStep.cpp T_DataTypeMappingWithSid1.cpp
+SOURCE	app_CTRL.CPP
+
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
+LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/ticoncaptionoverride.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/ticoncaptionoverride.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -38,27 +38,27 @@
 
 //reg added for Datacaging
 START RESOURCE	ticoncaptionoverride_reg.rss
-TARGETPATH		/private/10003a3f/import/apps
+TARGETPATH		/apparctestregfiles
 END
 
 START RESOURCE 	ticoncaptionoverride.rss
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 END
 
 START RESOURCE 	ticoncaptionoverride_loc.rss
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 LANG 			SC 01 02 03
 END
 
 START BITMAP 	ticoncapoverride.mbm
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
 SOURCE 			c8,1 tstappicon40x55.bmp tstappicon40x55m.bmp
 END
 
 START BITMAP 	ticoncapoverride02.m02
-TARGETPATH 		/resource/apps
+TARGETPATH 		/apparctestregfiles
 SOURCEPATH 		../tdatasrc
 SOURCE 			c8,1 def25.bmp def25m.bmp def25.bmp def25m.bmp def50.bmp def50m.bmp
 END
--- a/appfw/apparchitecture/tef/ticoncaptionoverride01.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/ticoncaptionoverride01.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -22,4 +22,4 @@
 rls_string STRING_r_ticoncapoverride_caption_string "TstCap UK"
 rls_string STRING_r_ticoncapoverride_short_caption_string "TC UK"
 
-rls_string STRING_r_ticoncapoverride_icon_file "z:\\resource\\apps\\ticoncapoverride.mbm"
+rls_string STRING_r_ticoncapoverride_icon_file "\\resource\\apps\\ticoncapoverride.mbm"
--- a/appfw/apparchitecture/tef/ticoncaptionoverride02.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/ticoncaptionoverride02.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -22,4 +22,4 @@
 rls_string STRING_r_ticoncapoverride_caption_string "TstCap FR"
 rls_string STRING_r_ticoncapoverride_short_caption_string "TC FR"
 
-rls_string STRING_r_ticoncapoverride_icon_file "z:\\resource\\apps\\ticoncapoverride02.m02"
+rls_string STRING_r_ticoncapoverride_icon_file "\\resource\\apps\\ticoncapoverride02.m02"
--- a/appfw/apparchitecture/tef/ticoncaptionoverride03.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/ticoncaptionoverride03.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -22,4 +22,4 @@
 rls_string STRING_r_ticoncapoverride_caption_string "TstCap GE"
 rls_string STRING_r_ticoncapoverride_short_caption_string "TC GE"
 
-rls_string STRING_r_ticoncapoverride_icon_file "z:\\resource\\apps\\ticoncapoverride.mbm"
+rls_string STRING_r_ticoncapoverride_icon_file "\\resource\\apps\\ticoncapoverride.mbm"
--- a/appfw/apparchitecture/tef/ticoncaptionoverridesc.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/ticoncaptionoverridesc.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -23,4 +23,4 @@
 rls_string STRING_r_ticoncapoverride_caption_string "TstCap UK"
 rls_string STRING_r_ticoncapoverride_short_caption_string "TC UK"
 
-rls_string STRING_r_ticoncapoverride_icon_file "z:\\resource\\apps\\ticoncapoverride.mbm"
+rls_string STRING_r_ticoncapoverride_icon_file "\\resource\\apps\\ticoncapoverride.mbm"
--- a/appfw/apparchitecture/tef/tlargestack/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tlargestack/tlargestackapp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tlargestack/tlargestackapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -37,11 +37,11 @@
 
 START RESOURCE	tlargestackapp.rss
 HEADER
-TARGETPATH		/resource/apps
+TARGETPATH		/apparctestregfiles
 end
 
 START RESOURCE	tlargestackapp_reg.rss
-TARGETPATH		/private/10003a3f/apps
+TARGETPATH		/apparctestregfiles
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/tnonnativeruntime/tnonnativeruntime.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32base.h>
+#include "../t_nonnativetest.h"
+#include <e32property.h>
+#include <apacmdln.h>
+
+const TUid KPropertyCategory = {0x101F289C};
+const TUint KNonNativeTestPropertyKey = 2;
+
+TInt E32Main()
+    {
+    RProperty forceRegStatus;
+    User::LeaveIfError(forceRegStatus.Attach(KPropertyCategory, KNonNativeTestPropertyKey, EOwnerThread));
+    
+    forceRegStatus.Set(1);
+    forceRegStatus.Close();
+    return(KErrNone);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/tnonnativeruntime/tnonnativeruntime.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+TARGET        		tnonnativeruntime.exe
+TARGETTYPE    		exe
+UID           		0x100039CE 0xA0001002
+VENDORID 	  		0x70000001
+
+SOURCEPATH    .
+SOURCE		  tnonnativeruntime.cpp
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+
+START RESOURCE	tnonnativeruntime_reg.rss
+TARGETPATH		/private/10003a3f/import/apps
+END
+
+LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/tnonnativeruntime/tnonnativeruntime_reg.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xA0001002 // application UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file = "tnonnativeruntime";
+	}
+	
--- a/appfw/apparchitecture/tef/tnotifydrivesapp/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -38,13 +38,13 @@
 SOURCEPATH	.
 RESOURCE 	tnotifydrivesapp.rss
 START RESOURCE	tnotifydrivesapp.rss
-TARGETPATH	/system/data
+TARGETPATH	/apparctestregfiles
 LANG		SC
 END
 
 SOURCEPATH	.
 START RESOURCE	tnotifydrivesapp_reg.rss
-TARGETPATH /system/data
+TARGETPATH /apparctestregfiles
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
--- a/appfw/apparchitecture/tef/tssaac/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tssaac/scripts/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tssaac/scripts/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tstapp01.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstapp01.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,9 +26,9 @@
 rls_string STRING_r_tstapp_view1_caption "V1 UK"
 rls_string STRING_r_tstapp_view2_caption "V2 UK"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstappview01.m01"
-rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstappview02.k"
-rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view1_icon_file "\\resource\\apps\\tstappview01.m01"
+rls_string STRING_r_tstapp_view2_icon_file "\\resource\\apps\\tstappview02.k"
+rls_string STRING_r_tstapp_view3_icon_file "\\resource\\apps\\tstappviewneg.xyz"
 
 
--- a/appfw/apparchitecture/tef/tstapp02.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstapp02.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,9 +26,9 @@
 rls_string STRING_r_tstapp_view1_caption "V1 FR"
 rls_string STRING_r_tstapp_view2_caption "V2 FR"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp02.m02"
-rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstappview01.m02"
-rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstappview"
-rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.mbm"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp02.m02"
+rls_string STRING_r_tstapp_view1_icon_file "\\resource\\apps\\tstappview01.m02"
+rls_string STRING_r_tstapp_view2_icon_file "\\resource\\apps\\tstappview"
+rls_string STRING_r_tstapp_view3_icon_file "\\resource\\apps\\tstappviewneg.mbm"
 
 
--- a/appfw/apparchitecture/tef/tstapp03.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstapp03.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,9 +26,9 @@
 rls_string STRING_r_tstapp_view1_caption "V1 GE"
 rls_string STRING_r_tstapp_view2_caption "V2 GE"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view1_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view2_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view3_icon_file "\\resource\\apps\\tstappviewneg.xyz"
 
 
--- a/appfw/apparchitecture/tef/tstapp04.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstapp04.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,9 +26,9 @@
 rls_string STRING_r_tstapp_view1_caption "V1 SP"
 rls_string STRING_r_tstapp_view2_caption "V2 SP"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view1_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view2_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view3_icon_file "\\resource\\apps\\tstappviewneg.xyz"
 
 
--- a/appfw/apparchitecture/tef/tstapp05.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstapp05.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,9 +26,9 @@
 rls_string STRING_r_tstapp_view1_caption "V1 IT"
 rls_string STRING_r_tstapp_view2_caption "V2 IT"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view1_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view2_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view3_icon_file "\\resource\\apps\\tstappviewneg.xyz"
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/tstapp_standalone_stub.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,104 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+
+ TARGET        	tstapp.exe
+ TARGETTYPE    	exe
+ TARGETPATH		/sys/bin
+
+CAPABILITY 	All -Tcb
+
+UID           	0x100039CE 10 //the original UID
+VENDORID 		0x70000001 
+EPOCSTACKSIZE 	0x5000
+
+SOURCEPATH    	.
+SOURCE        	TSTAPP_standalone.CPP
+
+USERINCLUDE   	.
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+//systeminclude 	/epoc32/include/ecom
+
+
+//reg added for Datacaging
+START RESOURCE	tstapp_reg.rss
+TARGETPATH		/private/10003a3f/import/apps
+END
+
+START RESOURCE 	TSTAPP.rss
+TARGETPATH 		/resource/apps
+END
+
+START RESOURCE 	tstapp_loc.rss
+TARGETPATH 		/resource/apps
+LANG 			SC 01 02 03 04 05
+END
+
+START BITMAP 	tstapp.mbm
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon40x55.bmp tstappicon40x55m.bmp
+
+END
+
+START BITMAP 	tstapp02.m02
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 def25.bmp def25m.bmp def25.bmp def25m.bmp def50.bmp def50m.bmp
+END
+
+START BITMAP 	tstappview01.m01
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 def25.bmp def25m.bmp def35.bmp def35m.bmp def50.bmp def50m.bmp
+END
+
+START BITMAP 	tstappview02.k
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon40x55.bmp tstappicon40x55m.bmp
+END
+
+START BITMAP 	tstappview01.m02
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 def25.bmp def25m.bmp def35.bmp def35m.bmp def50.bmp def50m.bmp
+END
+
+START BITMAP 	tstappview
+TARGETPATH 		/resource/apps
+SOURCEPATH 		../tdatasrc
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon24x20.bmp tstappicon24x20m.bmp
+SOURCE 			c8,1 tstappicon40x55.bmp tstappicon40x55m.bmp
+END
+
+LIBRARY 	euser.lib apparc.lib eikcore.lib cone.lib  
+
+SMPSAFE
--- a/appfw/apparchitecture/tef/tstappsc.rls	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tstappsc.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,6 +26,6 @@
 rls_string STRING_r_tstapp_view1_caption "V1 SC"
 rls_string STRING_r_tstapp_view2_caption "V2 SC"
 
-rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
-rls_string STRING_r_tstapp_view_icon_file "z:\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_icon_file "\\resource\\apps\\tstapp.mbm"
+rls_string STRING_r_tstapp_view_icon_file "\\resource\\apps\\tstapp.mbm"
 
--- a/appfw/apparchitecture/tef/tupgradeiconapp/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -39,13 +39,13 @@
 SOURCEPATH	.
 RESOURCE 	tupgradeiconapp.rss
 START RESOURCE	tupgradeiconapp.rss
-TARGETPATH	/resource/apps
+TARGETPATH	/apparctestregfiles
 LANG		SC
 END
 
 SOURCEPATH	.
 START RESOURCE	tupgradeiconapp_reg.rss
-TARGETPATH /private/10003a3f/apps
+TARGETPATH /apparctestregfiles
 END
 
 
--- a/appfw/apparchitecture/tef/zerosizedicontestapp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/apparchitecture/tef/zerosizedicontestapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -24,6 +24,8 @@
 SOURCEPATH    	.
 SOURCE		zerosizedicontestapp.cpp
 
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE   	.
 SYSTEMINCLUDE 	/epoc32/include
 SYSTEMINCLUDE 	/epoc32/include/techview
--- a/appfw/uiftestfw/automation/SubsystemList.py	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-# SubsystemList.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# SubsystemList_95.txt
-# This file lists the subsystem components that are to be built.
-# Each line points to a bld.inf
-
-\app-framework\TestFramework\group
-\app-framework\animation\group
-\app-framework\bmpanim\group
-\app-framework\clock\group
-\app-framework\cone\group
-\app-framework\egul\group
-\app-framework\errorresgt\group
-\app-framework\fepbase\group
-\app-framework\gfxtranseffect\group
-\app-framework\grid\group
-\app-framework\print\group
-\app-framework\uiklafGT\group
-\app-framework\uikon\group
-
-\thindump\group
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/uiftestfw/automation/SubsystemList.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+# SubsystemList.txt
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# SubsystemList_95.txt
+# This file lists the subsystem components that are to be built.
+# Each line points to a bld.inf
+
+\app-framework\TestFramework\group
+\app-framework\animation\group
+\app-framework\bmpanim\group
+\app-framework\clock\group
+\app-framework\cone\group
+\app-framework\egul\group
+\app-framework\errorresgt\group
+\app-framework\fepbase\group
+\app-framework\gfxtranseffect\group
+\app-framework\grid\group
+\app-framework\print\group
+\app-framework\uiklafGT\group
+\app-framework\uikon\group
+
+\thindump\group
--- a/appfw/uiftestfw/automation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/automation/testlists/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/automation/testlists/emulator/tests_sw_core.py	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-# tests_sw_core.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# program,log,commdb,script,timeout,release,pre cmd,post cmd
-
-# NOTE: Execution order is essentially alphabetical, except where noted.
-
-# DUMMY TEST 
-# workaround for DEF059510 to prevent first test case randomly failing
-appfwk_test_dummytest, epocwind.out, , , 180
-
-# ANIMATION TESTS
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_basic.htm,     , z:\animationtest\animationtest_t_basic.script,  600
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_custom.htm,    , z:\animationtest\animationtest_t_custom.script, 600
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_frames.htm,    , z:\animationtest\animationtest_t_frames.script, 600
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_mng.htm,       , z:\animationtest\animationtest_t_mng.script,    600
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_oom.htm,       , z:\animationtest\animationtest_t_oom.script,    600
-TESTEXECUTE, C:\logs\testexecute\animationtest_t_synch.htm,     , z:\animationtest\animationtest_t_synch.script,  600
-
-# BMPANIM TESTS
-TESTEXECUTE, C:\logs\testexecute\bmpanimtest_t_autoan.htm,      , z:\bmpanimtest\bmpanimtest_t_autoan.script,     600
-TESTEXECUTE, C:\logs\testexecute\bmpanimtest_t_bmpanim.htm,     , z:\bmpanimtest\bmpanimtest_t_bmpanim.script,    600
-
-# CLOCK TESTS
-TESTEXECUTE, C:\logs\testexecute\clocktest_t_clck0.htm,         , z:\clocktest\clocktest_t_clck0.script,          600
-TESTEXECUTE, C:\logs\testexecute\clocktest_t_clck1.htm,         , z:\clocktest\clocktest_t_clck1.script,          600
-TESTEXECUTE, C:\logs\testexecute\clocktest_t_msgwin0.htm,       , z:\clocktest\clocktest_t_msgwin0.script,        600
-
-# CONE TESTS
-TESTEXECUTE, C:\logs\testexecute\conetest_t_background.htm,     	, z:\conetest\conetest_t_background.script,       600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_coedatastorage.htm, 	, z:\conetest\conetest_t_coedatastorage.script,   600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone0.htm,          	, z:\conetest\conetest_t_cone0.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone1.htm,          	, z:\conetest\conetest_t_cone1.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone2.htm,          	, z:\conetest\conetest_t_cone2.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone3.htm,          	, z:\conetest\conetest_t_cone3.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone4exe.htm,       	, z:\conetest\conetest_t_cone4exe.script,         600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone5.htm,          	, z:\conetest\conetest_t_cone5.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone6.htm,          	, z:\conetest\conetest_t_cone6.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_cone7.htm,          	, z:\conetest\conetest_t_cone7.script,            600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conecoecntss.htm, 		, z:\conetest\conetest_t_conecoecntss.script,     600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_coneerrormsg.htm,   	, z:\conetest\conetest_t_coneerrormsg.script,     600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conehelptext.htm,   	, z:\conetest\conetest_t_conehelptext.script,     600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_coneinvalidate.htm, 	, z:\conetest\conetest_t_coneinvalidate.script,   600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conetransition.htm, 	, z:\conetest\conetest_t_conetransition.script,   600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conevisibility.htm, 	, z:\conetest\conetest_t_conevisibility.script,   600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conezoomfont.htm,   	, z:\conetest\conetest_t_conezoomfont.script,     600
-TESTEXECUTE, C:\logs\testexecute\conetest_t_multiplescreens.htm,	, z:\conetest\conetest_t_multiplescreens.script,  600, , z\appfwk\test\mulscreens_sw_test.cmd install, z\appfwk\test\mulscreens_sw_test.cmd uninstall
-TESTEXECUTE, C:\logs\testexecute\conetest_t_coneresourceloader.htm,	, z:\conetest\conetest_t_coneresourceloader.script,  800
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conestateobs.htm,	, z:\conetest\conetest_t_conestateobs.script,  800
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conetransparency.htm,	, z:\conetest\conetest_t_conetransparency.script,  600
-
-# CONE MENU TESTS
-TESTEXECUTE, C:\logs\testexecute\menutest_t_menu0.htm,          , z:\conetest\menutest_t_menu0.script,            600
-TESTEXECUTE, C:\logs\testexecute\menutest_t_menu1.htm,          , z:\conetest\menutest_t_menu1.script,            600
-TESTEXECUTE, C:\logs\testexecute\menutest_t_vwa.htm,            , z:\conetest\menutest_t_vwa.script,              600
-
-# EGUL TESTS
-TESTEXECUTE, C:\logs\testexecute\egultest_t_alignment.htm,      , z:\egultest\egultest_t_alignment.script,        600
-TESTEXECUTE, C:\logs\testexecute\egultest_t_border.htm,         , z:\egultest\egultest_t_border.script,           600
-TESTEXECUTE, C:\logs\testexecute\egultest_t_color.htm,          , z:\egultest\egultest_t_color.script,            600
-TESTEXECUTE, C:\logs\testexecute\egultest_t_digitwidth.htm,     , z:\egultest\egultest_t_digitwidth.script,       600
-
-# ETUL TESTS
-TESTEXECUTE, C:\logs\testexecute\etultest_t_addressstringtokenizer.htm,      ,z:\etultest\etultest_t_addressstringtokenizer.script,        800
-TESTEXECUTE, C:\logs\testexecute\etultest_t_phonenumberutils.htm,         , z:\etultest\etultest_t_phonenumberutils.script,           800
-TESTEXECUTE, C:\logs\testexecute\etultest_t_textresourceutils.htm,          , z:\etultest\etultest_t_textresourceutils.script,            800
-
-# FEPBASE TESTS
-TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_appmorse.htm,    , z:\fepbasetest\fepbasetest_t_appmorse.script,   600
-TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_fepgen.htm,      , z:\fepbasetest\fepbasetest_t_fepgen.script,     600
-
-# FEP TESTS
-TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_defocusingedwin.htm, , z:\fepbasetest\fepbasetest_t_defocusingedwin.script,    600
-TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_fep1testtarget.htm,  , z:\fepbasetest\fepbasetest_t_fep1testtarget.script,     600
-TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_keyboardlogger.htm,  , z:\fepbasetest\fepbasetest_t_keyboardlogger.script,     600
-
-# GFXTRANSEFFECT TESTS
-TESTEXECUTE, C:\logs\testexecute\gfxtranstest_t_gfxtranseffect.htm, , z:\gfxtranstest\gfxtranstest_t_gfxtranseffect.script,    800
-
-# GRID TESTS
-TESTEXECUTE, C:\logs\testexecute\gridtest_t_cogrid.htm,         , z:\gridtest\gridtest_t_cogrid.script,           600
-TESTEXECUTE, C:\logs\testexecute\gridtest_t_glay.htm,           , z:\gridtest\gridtest_t_glay.script,             600
-TESTEXECUTE, C:\logs\testexecute\gridtest_t_grid0.htm,          , z:\gridtest\gridtest_t_grid0.script,            600
-
-# PRINT TESTS
-TESTEXECUTE, C:\logs\testexecute\printtest_t_fpr.htm,           , z:\printtest\printtest_t_fpr.script,            600
-TESTEXECUTE, C:\logs\testexecute\printtest_t_stream.htm,        , z:\printtest\printtest_t_stream.script,         600
-
-# UIK TESTS
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_addlibrary.htm,                , z:\uiktest\uiktest_t_addlibrary.script,                600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguage.htm,       , z:\uiktest\uiktest_t_applicationlanguage.script,       600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagefrench.htm, , z:\uiktest\uiktest_t_applicationlanguagefrench.script, 600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagenotset.htm, , z:\uiktest\uiktest_t_applicationlanguagenotset.script, 600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagesc.htm,     , z:\uiktest\uiktest_t_applicationlanguagesc.script,     600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagezulu.htm,   , z:\uiktest\uiktest_t_applicationlanguagezulu.script,   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_autoLib.htm,                   , z:\uiktest\uiktest_t_autoLib.script,                   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_backup.htm,      			  , z:\uiktest\uiktest_t_backup.script,      			   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_brdrcol.htm,                   , z:\uiktest\uiktest_t_brdrcol.script,                   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_capability1.htm,               , z:\uiktest\uiktest_t_capability1.script,               600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_capability2.htm,               , z:\uiktest\uiktest_t_capability2.script,               600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_colovr.htm,                    , z:\uiktest\uiktest_t_colovr.script,                    600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_colscm.htm,                    , z:\uiktest\uiktest_t_colscm.script,                    600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_disableexitchecks.htm,         , z:\uiktest\uiktest_t_disableexitchecks.script,         600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_eikenv.htm,                    , z:\uiktest\uiktest_t_eikenv.script,                    600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_error.htm,                     , z:\uiktest\uiktest_t_error.script,                     600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_fileutils.htm,                 , z:\uiktest\uiktest_t_fileutils.script,                 600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_focus.htm,                     , z:\uiktest\uiktest_t_focus.script,                     600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_hlsprite.htm,                  , z:\uiktest\uiktest_t_hlsprite.script,                  600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_msg.htm,                       , z:\uiktest\uiktest_t_msg.script,                       600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_multiplealarm.htm,         	  , z:\uiktest\uiktest_t_multiplealarm.script,        	   600, ,z\uiktest\multiplealarm_setup.bat install, z\uiktest\multiplealarm_setup.bat uninstall
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_nonfocus.htm,                  , z:\uiktest\uiktest_t_nonfocus.script,                  600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_notdial.htm,                   , z:\uiktest\uiktest_t_notdial.script,                   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_package.htm,                   , z:\uiktest\uiktest_t_package.script,                   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_parent.htm,                    , z:\uiktest\uiktest_t_parent.script,                    600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_shutter.htm,                   , z:\uiktest\uiktest_t_shutter.script,                   600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_spane.htm,                     , z:\uiktest\uiktest_t_spane.script,                     600
-TESTEXECUTE, C:\logs\testexecute\uiktest_t_syscolor.htm,         		  , z:\uiktest\uiktest_t_syscolor.script,                  600
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/uiftestfw/automation/testlists/emulator/tests_sw_core.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,129 @@
+# tests_sw_core.txt
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# program,log,commdb,script,timeout,release,pre cmd,post cmd
+
+# NOTE: Execution order is essentially alphabetical, except where noted.
+
+# DUMMY TEST 
+# workaround for DEF059510 to prevent first test case randomly failing
+appfwk_test_dummytest, epocwind.out, , , 180
+
+# ANIMATION TESTS
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_basic.htm,     , z:\animationtest\animationtest_t_basic.script,  600
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_custom.htm,    , z:\animationtest\animationtest_t_custom.script, 600
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_frames.htm,    , z:\animationtest\animationtest_t_frames.script, 600
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_mng.htm,       , z:\animationtest\animationtest_t_mng.script,    600
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_oom.htm,       , z:\animationtest\animationtest_t_oom.script,    600
+TESTEXECUTE, C:\logs\testexecute\animationtest_t_synch.htm,     , z:\animationtest\animationtest_t_synch.script,  600
+
+# BMPANIM TESTS
+TESTEXECUTE, C:\logs\testexecute\bmpanimtest_t_autoan.htm,      , z:\bmpanimtest\bmpanimtest_t_autoan.script,     600
+TESTEXECUTE, C:\logs\testexecute\bmpanimtest_t_bmpanim.htm,     , z:\bmpanimtest\bmpanimtest_t_bmpanim.script,    600
+
+# CLOCK TESTS
+TESTEXECUTE, C:\logs\testexecute\clocktest_t_clck0.htm,         , z:\clocktest\clocktest_t_clck0.script,          600
+TESTEXECUTE, C:\logs\testexecute\clocktest_t_clck1.htm,         , z:\clocktest\clocktest_t_clck1.script,          600
+TESTEXECUTE, C:\logs\testexecute\clocktest_t_msgwin0.htm,       , z:\clocktest\clocktest_t_msgwin0.script,        600
+
+# CONE TESTS
+TESTEXECUTE, C:\logs\testexecute\conetest_t_background.htm,     	, z:\conetest\conetest_t_background.script,       600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_coedatastorage.htm, 	, z:\conetest\conetest_t_coedatastorage.script,   600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone0.htm,          	, z:\conetest\conetest_t_cone0.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone1.htm,          	, z:\conetest\conetest_t_cone1.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone2.htm,          	, z:\conetest\conetest_t_cone2.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone3.htm,          	, z:\conetest\conetest_t_cone3.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone4exe.htm,       	, z:\conetest\conetest_t_cone4exe.script,         600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone5.htm,          	, z:\conetest\conetest_t_cone5.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone6.htm,          	, z:\conetest\conetest_t_cone6.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_cone7.htm,          	, z:\conetest\conetest_t_cone7.script,            600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conecoecntss.htm, 		, z:\conetest\conetest_t_conecoecntss.script,     600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_coneerrormsg.htm,   	, z:\conetest\conetest_t_coneerrormsg.script,     600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conehelptext.htm,   	, z:\conetest\conetest_t_conehelptext.script,     600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_coneinvalidate.htm, 	, z:\conetest\conetest_t_coneinvalidate.script,   600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conetransition.htm, 	, z:\conetest\conetest_t_conetransition.script,   600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conevisibility.htm, 	, z:\conetest\conetest_t_conevisibility.script,   600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conezoomfont.htm,   	, z:\conetest\conetest_t_conezoomfont.script,     600
+TESTEXECUTE, C:\logs\testexecute\conetest_t_multiplescreens.htm,	, z:\conetest\conetest_t_multiplescreens.script,  600, , z\appfwk\test\mulscreens_sw_test.cmd install, z\appfwk\test\mulscreens_sw_test.cmd uninstall
+TESTEXECUTE, C:\logs\testexecute\conetest_t_coneresourceloader.htm,	, z:\conetest\conetest_t_coneresourceloader.script,  800
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conestateobs.htm,	, z:\conetest\conetest_t_conestateobs.script,  800
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conetransparency.htm,	, z:\conetest\conetest_t_conetransparency.script,  600
+
+# CONE MENU TESTS
+TESTEXECUTE, C:\logs\testexecute\menutest_t_menu0.htm,          , z:\conetest\menutest_t_menu0.script,            600
+TESTEXECUTE, C:\logs\testexecute\menutest_t_menu1.htm,          , z:\conetest\menutest_t_menu1.script,            600
+TESTEXECUTE, C:\logs\testexecute\menutest_t_vwa.htm,            , z:\conetest\menutest_t_vwa.script,              600
+
+# EGUL TESTS
+TESTEXECUTE, C:\logs\testexecute\egultest_t_alignment.htm,      , z:\egultest\egultest_t_alignment.script,        600
+TESTEXECUTE, C:\logs\testexecute\egultest_t_border.htm,         , z:\egultest\egultest_t_border.script,           600
+TESTEXECUTE, C:\logs\testexecute\egultest_t_color.htm,          , z:\egultest\egultest_t_color.script,            600
+TESTEXECUTE, C:\logs\testexecute\egultest_t_digitwidth.htm,     , z:\egultest\egultest_t_digitwidth.script,       600
+
+# ETUL TESTS
+TESTEXECUTE, C:\logs\testexecute\etultest_t_addressstringtokenizer.htm,      ,z:\etultest\etultest_t_addressstringtokenizer.script,        800
+TESTEXECUTE, C:\logs\testexecute\etultest_t_phonenumberutils.htm,         , z:\etultest\etultest_t_phonenumberutils.script,           800
+TESTEXECUTE, C:\logs\testexecute\etultest_t_textresourceutils.htm,          , z:\etultest\etultest_t_textresourceutils.script,            800
+
+# FEPBASE TESTS
+TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_appmorse.htm,    , z:\fepbasetest\fepbasetest_t_appmorse.script,   600
+TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_fepgen.htm,      , z:\fepbasetest\fepbasetest_t_fepgen.script,     600
+
+# FEP TESTS
+TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_defocusingedwin.htm, , z:\fepbasetest\fepbasetest_t_defocusingedwin.script,    600
+TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_fep1testtarget.htm,  , z:\fepbasetest\fepbasetest_t_fep1testtarget.script,     600
+TESTEXECUTE, C:\logs\testexecute\fepbasetest_t_keyboardlogger.htm,  , z:\fepbasetest\fepbasetest_t_keyboardlogger.script,     600
+
+# GFXTRANSEFFECT TESTS
+TESTEXECUTE, C:\logs\testexecute\gfxtranstest_t_gfxtranseffect.htm, , z:\gfxtranstest\gfxtranstest_t_gfxtranseffect.script,    800
+
+# GRID TESTS
+TESTEXECUTE, C:\logs\testexecute\gridtest_t_cogrid.htm,         , z:\gridtest\gridtest_t_cogrid.script,           600
+TESTEXECUTE, C:\logs\testexecute\gridtest_t_glay.htm,           , z:\gridtest\gridtest_t_glay.script,             600
+TESTEXECUTE, C:\logs\testexecute\gridtest_t_grid0.htm,          , z:\gridtest\gridtest_t_grid0.script,            600
+
+# PRINT TESTS
+TESTEXECUTE, C:\logs\testexecute\printtest_t_fpr.htm,           , z:\printtest\printtest_t_fpr.script,            600
+TESTEXECUTE, C:\logs\testexecute\printtest_t_stream.htm,        , z:\printtest\printtest_t_stream.script,         600
+
+# UIK TESTS
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_addlibrary.htm,                , z:\uiktest\uiktest_t_addlibrary.script,                600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguage.htm,       , z:\uiktest\uiktest_t_applicationlanguage.script,       600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagefrench.htm, , z:\uiktest\uiktest_t_applicationlanguagefrench.script, 600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagenotset.htm, , z:\uiktest\uiktest_t_applicationlanguagenotset.script, 600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagesc.htm,     , z:\uiktest\uiktest_t_applicationlanguagesc.script,     600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_applicationlanguagezulu.htm,   , z:\uiktest\uiktest_t_applicationlanguagezulu.script,   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_autoLib.htm,                   , z:\uiktest\uiktest_t_autoLib.script,                   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_backup.htm,      			  , z:\uiktest\uiktest_t_backup.script,      			   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_brdrcol.htm,                   , z:\uiktest\uiktest_t_brdrcol.script,                   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_capability1.htm,               , z:\uiktest\uiktest_t_capability1.script,               600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_capability2.htm,               , z:\uiktest\uiktest_t_capability2.script,               600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_colovr.htm,                    , z:\uiktest\uiktest_t_colovr.script,                    600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_colscm.htm,                    , z:\uiktest\uiktest_t_colscm.script,                    600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_disableexitchecks.htm,         , z:\uiktest\uiktest_t_disableexitchecks.script,         600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_eikenv.htm,                    , z:\uiktest\uiktest_t_eikenv.script,                    600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_error.htm,                     , z:\uiktest\uiktest_t_error.script,                     600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_fileutils.htm,                 , z:\uiktest\uiktest_t_fileutils.script,                 600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_focus.htm,                     , z:\uiktest\uiktest_t_focus.script,                     600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_hlsprite.htm,                  , z:\uiktest\uiktest_t_hlsprite.script,                  600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_msg.htm,                       , z:\uiktest\uiktest_t_msg.script,                       600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_multiplealarm.htm,         	  , z:\uiktest\uiktest_t_multiplealarm.script,        	   600, ,z\uiktest\multiplealarm_setup.bat install, z\uiktest\multiplealarm_setup.bat uninstall
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_nonfocus.htm,                  , z:\uiktest\uiktest_t_nonfocus.script,                  600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_notdial.htm,                   , z:\uiktest\uiktest_t_notdial.script,                   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_package.htm,                   , z:\uiktest\uiktest_t_package.script,                   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_parent.htm,                    , z:\uiktest\uiktest_t_parent.script,                    600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_shutter.htm,                   , z:\uiktest\uiktest_t_shutter.script,                   600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_spane.htm,                     , z:\uiktest\uiktest_t_spane.script,                     600
+TESTEXECUTE, C:\logs\testexecute\uiktest_t_syscolor.htm,         		  , z:\uiktest\uiktest_t_syscolor.script,                  600
+
--- a/appfw/uiftestfw/automation/testlists/emulator/tests_sw_nga_enabled.py	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-# tests_sw_nga_enabled.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# program,log,commdb,script,timeout,release,pre cmd,post cmd
-
-# NOTE: Execution order is essentially alphabetical, except where noted.
-
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conemultiptr.htm,		, z:\conetest\conetest_t_conemultiptr.script,    800
-TESTEXECUTE, C:\logs\testexecute\conetest_t_conemultiptrcompound.htm,,z:\conetest\conetest_t_conemultiptrcompound.script,    800
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/uiftestfw/automation/testlists/emulator/tests_sw_nga_enabled.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,21 @@
+# tests_sw_core.txt
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# program,log,commdb,script,timeout,release,pre cmd,post cmd
+
+# NOTE: Execution order is essentially alphabetical, except where noted.
+
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conemultiptr.htm,		, z:\conetest\conetest_t_conemultiptr.script,    800
+TESTEXECUTE, C:\logs\testexecute\conetest_t_conemultiptrcompound.htm,,z:\conetest\conetest_t_conemultiptrcompound.script,    800
+
--- a/appfw/uiftestfw/automation/testlists/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/automation/testlists/hardware/tests_hw_core.py	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-# tests_hw_core.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# program,log,commdb,script,timeout,release,pre cmd,post cmd
-
-# NOTE: Execution order is essentially alphabetical, except where noted.
-
-# ANIMATION TESTS
-TESTEXECUTE, logs\testexecute\animationtest_t_basic.htm,     , z:\animationtest\animationtest_t_basic.script,  800
-TESTEXECUTE, logs\testexecute\animationtest_t_custom.htm,    , z:\animationtest\animationtest_t_custom.script, 800
-TESTEXECUTE, logs\testexecute\animationtest_t_frames.htm,    , z:\animationtest\animationtest_t_frames.script, 800
-TESTEXECUTE, logs\testexecute\animationtest_t_mng.htm,       , z:\animationtest\animationtest_t_mng.script,    800
-TESTEXECUTE, logs\testexecute\animationtest_t_oom.htm,       , z:\animationtest\animationtest_t_oom.script,    800
-TESTEXECUTE, logs\testexecute\animationtest_t_synch.htm,     , z:\animationtest\animationtest_t_synch.script,  800
-
-# BMPANIM TESTS
-TESTEXECUTE, logs\testexecute\bmpanimtest_t_autoan.htm,      , z:\bmpanimtest\bmpanimtest_t_autoan.script,     800
-TESTEXECUTE, logs\testexecute\bmpanimtest_t_bmpanim.htm,     , z:\bmpanimtest\bmpanimtest_t_bmpanim.script,    800
-
-# CLOCK TESTS
-TESTEXECUTE, logs\testexecute\clocktest_t_clck0.htm,         , z:\clocktest\clocktest_t_clck0.script,          800
-TESTEXECUTE, logs\testexecute\clocktest_t_clck1.htm,         , z:\clocktest\clocktest_t_clck1.script,          800
-TESTEXECUTE, logs\testexecute\clocktest_t_msgwin0.htm,       , z:\clocktest\clocktest_t_msgwin0.script,        800
-
-# CONE TESTS
-# Multiplescreens test is commented since hardware support wasn't available (yet) when PREQ1227 was submitted
-TESTEXECUTE, logs\testexecute\conetest_t_background.htm,     	, z:\conetest\conetest_t_background.script,       800
-TESTEXECUTE, logs\testexecute\conetest_t_coedatastorage.htm, 	, z:\conetest\conetest_t_coedatastorage.script,   800
-TESTEXECUTE, logs\testexecute\conetest_t_cone0.htm,          	, z:\conetest\conetest_t_cone0.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone1.htm,          	, z:\conetest\conetest_t_cone1.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone2.htm,          	, z:\conetest\conetest_t_cone2.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone3.htm,          	, z:\conetest\conetest_t_cone3.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone4exe.htm,       	, z:\conetest\conetest_t_cone4exe.script,         800
-TESTEXECUTE, logs\testexecute\conetest_t_cone5.htm,          	, z:\conetest\conetest_t_cone5.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone6.htm,          	, z:\conetest\conetest_t_cone6.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_cone7.htm,          	, z:\conetest\conetest_t_cone7.script,            800
-TESTEXECUTE, logs\testexecute\conetest_t_conecoecntss.htm, 	 	, z:\conetest\conetest_t_conecoecntss.script,     800
-TESTEXECUTE, logs\testexecute\conetest_t_coneerrormsg.htm,   	, z:\conetest\conetest_t_coneerrormsg.script,     800
-TESTEXECUTE, logs\testexecute\conetest_t_conehelptext.htm,   	, z:\conetest\conetest_t_conehelptext.script,     800
-TESTEXECUTE, logs\testexecute\conetest_t_coneinvalidate.htm, 	, z:\conetest\conetest_t_coneinvalidate.script,   800
-TESTEXECUTE, logs\testexecute\conetest_t_conetransition.htm, 	, z:\conetest\conetest_t_conetransition.script,   800
-TESTEXECUTE, logs\testexecute\conetest_t_conevisibility.htm, 	, z:\conetest\conetest_t_conevisibility.script,   800
-TESTEXECUTE, logs\testexecute\conetest_t_conezoomfont.htm,   	, z:\conetest\conetest_t_conezoomfont.script,     800
-TESTEXECUTE, logs\testexecute\conetest_t_multiplescreens.htm,	, z:\conetest\conetest_t_multiplescreens.script,  800
-TESTEXECUTE, logs\testexecute\conetest_t_coneresourceloader.htm,	, z:\conetest\conetest_t_coneresourceloader.script,  800
-TESTEXECUTE, logs\testexecute\conetest_t_conestateobs.htm,	, z:\conetest\conetest_t_conestateobs.script,  800
-TESTEXECUTE, logs\testexecute\conetest_t_conetransparency.htm,	, z:\conetest\conetest_t_conetransparency.script,  600
-
-# CONE MENU TESTS
-TESTEXECUTE, logs\testexecute\menutest_t_menu0.htm,          , z:\conetest\menutest_t_menu0.script,            800
-TESTEXECUTE, logs\testexecute\menutest_t_menu1.htm,          , z:\conetest\menutest_t_menu1.script,            800
-TESTEXECUTE, logs\testexecute\menutest_t_vwa.htm,            , z:\conetest\menutest_t_vwa.script,              800
-
-# EGUL TESTS
-TESTEXECUTE, logs\testexecute\egultest_t_alignment.htm,      , z:\egultest\egultest_t_alignment.script,        800
-TESTEXECUTE, logs\testexecute\egultest_t_border.htm,         , z:\egultest\egultest_t_border.script,           800
-TESTEXECUTE, logs\testexecute\egultest_t_color.htm,          , z:\egultest\egultest_t_color.script,            800
-TESTEXECUTE, logs\testexecute\egultest_t_digitwidth.htm,     , z:\egultest\egultest_t_digitwidth.script,       800
-# ETUL TESTS
-TESTEXECUTE, logs\testexecute\etultest_t_addressstringtokenizer.htm,      ,z:\etultest\etultest_t_addressstringtokenizer.script,        800
-TESTEXECUTE, logs\testexecute\etultest_t_phonenumberutils.htm,         , z:\etultest\etultest_t_phonenumberutils.script,           800
-TESTEXECUTE, logs\testexecute\etultest_t_textresourceutils.htm,          , z:\etultest\etultest_t_textresourceutils.script,            800
-
-# FEPBASE TESTS
-TESTEXECUTE, logs\testexecute\fepbasetest_t_appmorse.htm,    , z:\fepbasetest\fepbasetest_t_appmorse.script,   800
-TESTEXECUTE, logs\testexecute\fepbasetest_t_fepgen.htm,      , z:\fepbasetest\fepbasetest_t_fepgen.script,     800
-
-# FEP TESTS
-TESTEXECUTE, logs\testexecute\fepbasetest_t_defocusingedwin.htm, , z:\fepbasetest\fepbasetest_t_defocusingedwin.script,    800
-TESTEXECUTE, logs\testexecute\fepbasetest_t_fep1testtarget.htm,  , z:\fepbasetest\fepbasetest_t_fep1testtarget.script,     800
-TESTEXECUTE, logs\testexecute\fepbasetest_t_keyboardlogger.htm,  , z:\fepbasetest\fepbasetest_t_keyboardlogger.script,     800
-
-# GFXTRANSEFFECT TESTS
-TESTEXECUTE, logs\testexecute\gfxtranstest_t_gfxtranseffect.htm, , z:\gfxtranstest\gfxtranstest_t_gfxtranseffect.script,    800
-
-# GRID TESTS
-TESTEXECUTE, logs\testexecute\gridtest_t_cogrid.htm,         , z:\gridtest\gridtest_t_cogrid.script,           800
-TESTEXECUTE, logs\testexecute\gridtest_t_glay.htm,           , z:\gridtest\gridtest_t_glay.script,             800
-TESTEXECUTE, logs\testexecute\gridtest_t_grid0.htm,          , z:\gridtest\gridtest_t_grid0.script,            800
-
-# PRINT TESTS
-TESTEXECUTE, logs\testexecute\printtest_t_fpr.htm,           , z:\printtest\printtest_t_fpr.script,            800
-TESTEXECUTE, logs\testexecute\printtest_t_stream.htm,        , z:\printtest\printtest_t_stream.script,         800
-
-# UIK TESTS
-TESTEXECUTE, logs\testexecute\uiktest_t_addlibrary.htm,                , z:\uiktest\uiktest_t_addlibrary.script,                800
-TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguage.htm,       , z:\uiktest\uiktest_t_applicationlanguage.script,       800
-TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagefrench.htm, , z:\uiktest\uiktest_t_applicationlanguagefrench.script, 800
-TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagenotset.htm, , z:\uiktest\uiktest_t_applicationlanguagenotset.script, 800
-TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagesc.htm,     , z:\uiktest\uiktest_t_applicationlanguagesc.script,     800
-TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagezulu.htm,   , z:\uiktest\uiktest_t_applicationlanguagezulu.script,   800
-TESTEXECUTE, logs\testexecute\uiktest_t_autoLib.htm,                   , z:\uiktest\uiktest_t_autoLib.script,                   800
-TESTEXECUTE, logs\testexecute\uiktest_t_backup.htm,      			   , z:\uiktest\uiktest_t_backup.script,      			    800
-TESTEXECUTE, logs\testexecute\uiktest_t_brdrcol.htm,                   , z:\uiktest\uiktest_t_brdrcol.script,                   800
-TESTEXECUTE, logs\testexecute\uiktest_t_capability1.htm,               , z:\uiktest\uiktest_t_capability1.script,               800
-TESTEXECUTE, logs\testexecute\uiktest_t_capability2.htm,     		   , z:\uiktest\uiktest_t_capability2.script,        		800
-TESTEXECUTE, logs\testexecute\uiktest_t_colovr.htm,                    , z:\uiktest\uiktest_t_colovr.script,                    800
-TESTEXECUTE, logs\testexecute\uiktest_t_colscm.htm,        			   , z:\uiktest\uiktest_t_colscm.script,             		800
-TESTEXECUTE, logs\testexecute\uiktest_t_disableexitchecks.htm,         , z:\uiktest\uiktest_t_disableexitchecks.script,         800
-TESTEXECUTE, logs\testexecute\uiktest_t_eikenv.htm,                    , z:\uiktest\uiktest_t_eikenv.script,                    800
-TESTEXECUTE, logs\testexecute\uiktest_t_error.htm,                     , z:\uiktest\uiktest_t_error.script,                     800
-TESTEXECUTE, logs\testexecute\uiktest_t_fileutils.htm,                 , z:\uiktest\uiktest_t_fileutils.script,                 800
-TESTEXECUTE, logs\testexecute\uiktest_t_focus.htm,                     , z:\uiktest\uiktest_t_focus.script,                     800
-TESTEXECUTE, logs\testexecute\uiktest_t_hlsprite.htm,                  , z:\uiktest\uiktest_t_hlsprite.script,                  800
-TESTEXECUTE, logs\testexecute\uiktest_t_msg.htm,                       , z:\uiktest\uiktest_t_msg.script,                       800
-TESTEXECUTE, logs\testexecute\uiktest_t_nonfocus.htm,                  , z:\uiktest\uiktest_t_nonfocus.script,                  800
-TESTEXECUTE, logs\testexecute\uiktest_t_notdial.htm,                   , z:\uiktest\uiktest_t_notdial.script,                   800
-TESTEXECUTE, logs\testexecute\uiktest_t_package.htm,                   , z:\uiktest\uiktest_t_package.script,                   800
-TESTEXECUTE, logs\testexecute\uiktest_t_parent.htm,                    , z:\uiktest\uiktest_t_parent.script,   	            	800
-TESTEXECUTE, logs\testexecute\uiktest_t_shutter.htm,                   , z:\uiktest\uiktest_t_shutter.script,                   800
-TESTEXECUTE, logs\testexecute\uiktest_t_spane.htm,                     , z:\uiktest\uiktest_t_spane.script,                     800
-TESTEXECUTE, logs\testexecute\uiktest_t_syscolor.htm,        		   , z:\uiktest\uiktest_t_syscolor.script,           		800
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/uiftestfw/automation/testlists/hardware/tests_hw_core.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,124 @@
+# tests_hw_core.txt
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# program,log,commdb,script,timeout,release,pre cmd,post cmd
+
+# NOTE: Execution order is essentially alphabetical, except where noted.
+
+# ANIMATION TESTS
+TESTEXECUTE, logs\testexecute\animationtest_t_basic.htm,     , z:\animationtest\animationtest_t_basic.script,  800
+TESTEXECUTE, logs\testexecute\animationtest_t_custom.htm,    , z:\animationtest\animationtest_t_custom.script, 800
+TESTEXECUTE, logs\testexecute\animationtest_t_frames.htm,    , z:\animationtest\animationtest_t_frames.script, 800
+TESTEXECUTE, logs\testexecute\animationtest_t_mng.htm,       , z:\animationtest\animationtest_t_mng.script,    800
+TESTEXECUTE, logs\testexecute\animationtest_t_oom.htm,       , z:\animationtest\animationtest_t_oom.script,    800
+TESTEXECUTE, logs\testexecute\animationtest_t_synch.htm,     , z:\animationtest\animationtest_t_synch.script,  800
+
+# BMPANIM TESTS
+TESTEXECUTE, logs\testexecute\bmpanimtest_t_autoan.htm,      , z:\bmpanimtest\bmpanimtest_t_autoan.script,     800
+TESTEXECUTE, logs\testexecute\bmpanimtest_t_bmpanim.htm,     , z:\bmpanimtest\bmpanimtest_t_bmpanim.script,    800
+
+# CLOCK TESTS
+TESTEXECUTE, logs\testexecute\clocktest_t_clck0.htm,         , z:\clocktest\clocktest_t_clck0.script,          800
+TESTEXECUTE, logs\testexecute\clocktest_t_clck1.htm,         , z:\clocktest\clocktest_t_clck1.script,          800
+TESTEXECUTE, logs\testexecute\clocktest_t_msgwin0.htm,       , z:\clocktest\clocktest_t_msgwin0.script,        800
+
+# CONE TESTS
+# Multiplescreens test is commented since hardware support wasn't available (yet) when PREQ1227 was submitted
+TESTEXECUTE, logs\testexecute\conetest_t_background.htm,     	, z:\conetest\conetest_t_background.script,       800
+TESTEXECUTE, logs\testexecute\conetest_t_coedatastorage.htm, 	, z:\conetest\conetest_t_coedatastorage.script,   800
+TESTEXECUTE, logs\testexecute\conetest_t_cone0.htm,          	, z:\conetest\conetest_t_cone0.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone1.htm,          	, z:\conetest\conetest_t_cone1.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone2.htm,          	, z:\conetest\conetest_t_cone2.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone3.htm,          	, z:\conetest\conetest_t_cone3.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone4exe.htm,       	, z:\conetest\conetest_t_cone4exe.script,         800
+TESTEXECUTE, logs\testexecute\conetest_t_cone5.htm,          	, z:\conetest\conetest_t_cone5.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone6.htm,          	, z:\conetest\conetest_t_cone6.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_cone7.htm,          	, z:\conetest\conetest_t_cone7.script,            800
+TESTEXECUTE, logs\testexecute\conetest_t_conecoecntss.htm, 	 	, z:\conetest\conetest_t_conecoecntss.script,     800
+TESTEXECUTE, logs\testexecute\conetest_t_coneerrormsg.htm,   	, z:\conetest\conetest_t_coneerrormsg.script,     800
+TESTEXECUTE, logs\testexecute\conetest_t_conehelptext.htm,   	, z:\conetest\conetest_t_conehelptext.script,     800
+TESTEXECUTE, logs\testexecute\conetest_t_coneinvalidate.htm, 	, z:\conetest\conetest_t_coneinvalidate.script,   800
+TESTEXECUTE, logs\testexecute\conetest_t_conetransition.htm, 	, z:\conetest\conetest_t_conetransition.script,   800
+TESTEXECUTE, logs\testexecute\conetest_t_conevisibility.htm, 	, z:\conetest\conetest_t_conevisibility.script,   800
+TESTEXECUTE, logs\testexecute\conetest_t_conezoomfont.htm,   	, z:\conetest\conetest_t_conezoomfont.script,     800
+TESTEXECUTE, logs\testexecute\conetest_t_multiplescreens.htm,	, z:\conetest\conetest_t_multiplescreens.script,  800
+TESTEXECUTE, logs\testexecute\conetest_t_coneresourceloader.htm,	, z:\conetest\conetest_t_coneresourceloader.script,  800
+TESTEXECUTE, logs\testexecute\conetest_t_conestateobs.htm,	, z:\conetest\conetest_t_conestateobs.script,  800
+TESTEXECUTE, logs\testexecute\conetest_t_conetransparency.htm,	, z:\conetest\conetest_t_conetransparency.script,  600
+
+# CONE MENU TESTS
+TESTEXECUTE, logs\testexecute\menutest_t_menu0.htm,          , z:\conetest\menutest_t_menu0.script,            800
+TESTEXECUTE, logs\testexecute\menutest_t_menu1.htm,          , z:\conetest\menutest_t_menu1.script,            800
+TESTEXECUTE, logs\testexecute\menutest_t_vwa.htm,            , z:\conetest\menutest_t_vwa.script,              800
+
+# EGUL TESTS
+TESTEXECUTE, logs\testexecute\egultest_t_alignment.htm,      , z:\egultest\egultest_t_alignment.script,        800
+TESTEXECUTE, logs\testexecute\egultest_t_border.htm,         , z:\egultest\egultest_t_border.script,           800
+TESTEXECUTE, logs\testexecute\egultest_t_color.htm,          , z:\egultest\egultest_t_color.script,            800
+TESTEXECUTE, logs\testexecute\egultest_t_digitwidth.htm,     , z:\egultest\egultest_t_digitwidth.script,       800
+# ETUL TESTS
+TESTEXECUTE, logs\testexecute\etultest_t_addressstringtokenizer.htm,      ,z:\etultest\etultest_t_addressstringtokenizer.script,        800
+TESTEXECUTE, logs\testexecute\etultest_t_phonenumberutils.htm,         , z:\etultest\etultest_t_phonenumberutils.script,           800
+TESTEXECUTE, logs\testexecute\etultest_t_textresourceutils.htm,          , z:\etultest\etultest_t_textresourceutils.script,            800
+
+# FEPBASE TESTS
+TESTEXECUTE, logs\testexecute\fepbasetest_t_appmorse.htm,    , z:\fepbasetest\fepbasetest_t_appmorse.script,   800
+TESTEXECUTE, logs\testexecute\fepbasetest_t_fepgen.htm,      , z:\fepbasetest\fepbasetest_t_fepgen.script,     800
+
+# FEP TESTS
+TESTEXECUTE, logs\testexecute\fepbasetest_t_defocusingedwin.htm, , z:\fepbasetest\fepbasetest_t_defocusingedwin.script,    800
+TESTEXECUTE, logs\testexecute\fepbasetest_t_fep1testtarget.htm,  , z:\fepbasetest\fepbasetest_t_fep1testtarget.script,     800
+TESTEXECUTE, logs\testexecute\fepbasetest_t_keyboardlogger.htm,  , z:\fepbasetest\fepbasetest_t_keyboardlogger.script,     800
+
+# GFXTRANSEFFECT TESTS
+TESTEXECUTE, logs\testexecute\gfxtranstest_t_gfxtranseffect.htm, , z:\gfxtranstest\gfxtranstest_t_gfxtranseffect.script,    800
+
+# GRID TESTS
+TESTEXECUTE, logs\testexecute\gridtest_t_cogrid.htm,         , z:\gridtest\gridtest_t_cogrid.script,           800
+TESTEXECUTE, logs\testexecute\gridtest_t_glay.htm,           , z:\gridtest\gridtest_t_glay.script,             800
+TESTEXECUTE, logs\testexecute\gridtest_t_grid0.htm,          , z:\gridtest\gridtest_t_grid0.script,            800
+
+# PRINT TESTS
+TESTEXECUTE, logs\testexecute\printtest_t_fpr.htm,           , z:\printtest\printtest_t_fpr.script,            800
+TESTEXECUTE, logs\testexecute\printtest_t_stream.htm,        , z:\printtest\printtest_t_stream.script,         800
+
+# UIK TESTS
+TESTEXECUTE, logs\testexecute\uiktest_t_addlibrary.htm,                , z:\uiktest\uiktest_t_addlibrary.script,                800
+TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguage.htm,       , z:\uiktest\uiktest_t_applicationlanguage.script,       800
+TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagefrench.htm, , z:\uiktest\uiktest_t_applicationlanguagefrench.script, 800
+TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagenotset.htm, , z:\uiktest\uiktest_t_applicationlanguagenotset.script, 800
+TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagesc.htm,     , z:\uiktest\uiktest_t_applicationlanguagesc.script,     800
+TESTEXECUTE, logs\testexecute\uiktest_t_applicationlanguagezulu.htm,   , z:\uiktest\uiktest_t_applicationlanguagezulu.script,   800
+TESTEXECUTE, logs\testexecute\uiktest_t_autoLib.htm,                   , z:\uiktest\uiktest_t_autoLib.script,                   800
+TESTEXECUTE, logs\testexecute\uiktest_t_backup.htm,      			   , z:\uiktest\uiktest_t_backup.script,      			    800
+TESTEXECUTE, logs\testexecute\uiktest_t_brdrcol.htm,                   , z:\uiktest\uiktest_t_brdrcol.script,                   800
+TESTEXECUTE, logs\testexecute\uiktest_t_capability1.htm,               , z:\uiktest\uiktest_t_capability1.script,               800
+TESTEXECUTE, logs\testexecute\uiktest_t_capability2.htm,     		   , z:\uiktest\uiktest_t_capability2.script,        		800
+TESTEXECUTE, logs\testexecute\uiktest_t_colovr.htm,                    , z:\uiktest\uiktest_t_colovr.script,                    800
+TESTEXECUTE, logs\testexecute\uiktest_t_colscm.htm,        			   , z:\uiktest\uiktest_t_colscm.script,             		800
+TESTEXECUTE, logs\testexecute\uiktest_t_disableexitchecks.htm,         , z:\uiktest\uiktest_t_disableexitchecks.script,         800
+TESTEXECUTE, logs\testexecute\uiktest_t_eikenv.htm,                    , z:\uiktest\uiktest_t_eikenv.script,                    800
+TESTEXECUTE, logs\testexecute\uiktest_t_error.htm,                     , z:\uiktest\uiktest_t_error.script,                     800
+TESTEXECUTE, logs\testexecute\uiktest_t_fileutils.htm,                 , z:\uiktest\uiktest_t_fileutils.script,                 800
+TESTEXECUTE, logs\testexecute\uiktest_t_focus.htm,                     , z:\uiktest\uiktest_t_focus.script,                     800
+TESTEXECUTE, logs\testexecute\uiktest_t_hlsprite.htm,                  , z:\uiktest\uiktest_t_hlsprite.script,                  800
+TESTEXECUTE, logs\testexecute\uiktest_t_msg.htm,                       , z:\uiktest\uiktest_t_msg.script,                       800
+TESTEXECUTE, logs\testexecute\uiktest_t_nonfocus.htm,                  , z:\uiktest\uiktest_t_nonfocus.script,                  800
+TESTEXECUTE, logs\testexecute\uiktest_t_notdial.htm,                   , z:\uiktest\uiktest_t_notdial.script,                   800
+TESTEXECUTE, logs\testexecute\uiktest_t_package.htm,                   , z:\uiktest\uiktest_t_package.script,                   800
+TESTEXECUTE, logs\testexecute\uiktest_t_parent.htm,                    , z:\uiktest\uiktest_t_parent.script,   	            	800
+TESTEXECUTE, logs\testexecute\uiktest_t_shutter.htm,                   , z:\uiktest\uiktest_t_shutter.script,                   800
+TESTEXECUTE, logs\testexecute\uiktest_t_spane.htm,                     , z:\uiktest\uiktest_t_spane.script,                     800
+TESTEXECUTE, logs\testexecute\uiktest_t_syscolor.htm,        		   , z:\uiktest\uiktest_t_syscolor.script,           		800
+
--- a/appfw/uiftestfw/automation/testlists/hardware/tests_hw_nga_enabled.py	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-# tests_hw_nga_enabled.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# program,log,commdb,script,timeout,release,pre cmd,post cmd
-
-# NOTE: Execution order is essentially alphabetical, except where noted.
-
-TESTEXECUTE, logs\testexecute\conetest_t_conemultiptr.htm,			, z:\conetest\conetest_t_conemultiptr.script,  800
-TESTEXECUTE, logs\testexecute\conetest_t_conemultiptrcompound.htm,	, z:\conetest\conetest_t_conemultiptrcompound.script,  800
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/uiftestfw/automation/testlists/hardware/tests_hw_nga_enabled.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,21 @@
+# tests_hw_nga_enabled.txt
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# program,log,commdb,script,timeout,release,pre cmd,post cmd
+
+# NOTE: Execution order is essentially alphabetical, except where noted.
+
+TESTEXECUTE, logs\testexecute\conetest_t_conemultiptr.htm,			, z:\conetest\conetest_t_conemultiptr.script,  800
+TESTEXECUTE, logs\testexecute\conetest_t_conemultiptrcompound.htm,	, z:\conetest\conetest_t_conemultiptrcompound.script,  800
+
--- a/appfw/uiftestfw/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/inc/appfwk_test_AppUi.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appfw/uiftestfw/inc/appfwk_test_AppUi.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// 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"
@@ -30,7 +30,7 @@
 
 #include <test/testexecutestepbase.h>
 
-#include "appfwk_tmsteststep.h"
+#include <test/appfwk_tmsteststep.h>
 
 // user panic descriptors
 _LIT(KPanicNullPointer,"Null pointer");
--- a/appfw/uiftestfw/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/resource/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/scripts/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/scripts/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/uiftestfw/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/client/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/server/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/scripts/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/scripts/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/applaunchtest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/applaunchtest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/applaunchtest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/tview1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/tview2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/tview3/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/tview4/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appfw/viewserver/test/tviews/tvw/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/amastartsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/dscstoresrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/localinc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/localsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/resource/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/resource/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/scripts/emulator/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/scripts/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tamastarter/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tdscstore/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tdscstore/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tdscstore/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tdscstore/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/tdscstore/testdata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/aftermarketappstarter/test/testapps/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/apstartsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/test/tapstart/group/apstarttest_apstart.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/applaunchservices/applaunchplugins/test/tapstart/group/apstarttest_apstart.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -21,9 +21,9 @@
 
 data=ABI_DIR\BUILD_DIR\tapstart_server.exe					sys\bin\tapstart_server.exe
 
-data=DATAZ_\apstarttest\apstarttest_apstart_run.bat		\apstarttest_apstart_run.bat
+//data=DATAZ_\apstarttest\apstarttest_apstart_run.bat		\apstarttest_apstart_run.bat
 
-data=DATAZ_\apstarttest\apstarttest_apstart.script		\apstarttest\apstarttest_apstart.script
+//data=DATAZ_\apstarttest\apstarttest_apstart.script		\apstarttest\apstarttest_apstart.script
 
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applaunchservices/applaunchplugins/test/tapstart/group/apstarttest_apstart.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"apstarttest_apstart.pkg EN"}
+
+; Vendor name
+: "apstarttest_apstart"
+
+
+"\epoc32\data\z\apstarttest\apstarttest_apstart_run.bat"-"c:\apstarttest_apstart_run.bat"
+"\epoc32\data\z\apstarttest\apstarttest_apstart.script"-"c:\apstarttest\apstarttest_apstart.script"
--- a/applaunchservices/applaunchplugins/test/tapstart/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/test/tapstart/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/test/tapstart/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/applaunchservices/applaunchplugins/test/testapps/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_info/appsupport_metadata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/action_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/action_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/action_plugin_api/inc/CFActionPlugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/action_plugin_api/inc/CFActionPlugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -23,7 +23,7 @@
 #include <e32base.h>
 #include <badesca.h>
 
-#include <CFActionPlugInConst.hrh>
+#include <cfactionpluginconst.hrh>
 
 class CCFActionPlugInImpl;
 class CCFActionIndication;
--- a/appsupport_plat/action_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/application_orientation_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/application_orientation_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/application_orientation_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_access_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_access_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_access_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_client_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_client_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_client_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_listener_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_listener_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_listener_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_services_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_services_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_services_api/inc/CFActionIndication.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/context_framework_services_api/inc/CFActionIndication.h	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #define C_CFACTIONINDICATION_H
 
 #include <e32base.h>
-#include <CFKeyValuePair.h>
+#include <cfkeyvaluepair.h>
 
 /**
 * Encapsulates inside an action indication. Action indication consists of
--- a/appsupport_plat/context_framework_services_api/inc/cfwcontextdef.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/context_framework_services_api/inc/cfwcontextdef.h	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #ifndef CFWCONTEXTDEF_H
 #define CFWCONTEXTDEF_H
 
-#include <CFDefinitions.h>
+#include <cfdefinitions.h>
 
 //-----------------------------------------------------------------------------
 // Source:  'ContextFramework'
--- a/appsupport_plat/context_framework_services_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_version_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_version_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_framework_version_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_plugin_api/inc/CFContextSourcePlugIn.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/context_source_plugin_api/inc/CFContextSourcePlugIn.h	Thu Jun 24 13:52:58 2010 +0100
@@ -22,7 +22,7 @@
 
 
 #include <e32base.h>
-#include <CFContextSourcePlugInConst.hrh>
+#include <cfcontextsourcepluginconst.hrh>
 
 class MCFContextInterface;
 class MCFContextSourceSetting;
--- a/appsupport_plat/context_source_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_settings_manager_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_settings_manager_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_source_settings_manager_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_subscription_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_subscription_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/context_subscription_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_mmi_service_interface_custom_api/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_mmi_service_interface_custom_api/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_mmi_service_interface_custom_api/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_netscape_plugin_command_api/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_netscape_plugin_command_api/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/flash_netscape_plugin_command_api/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_mapper_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_mapper_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/key_event_framework_mapper_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/media_keys_definition_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/media_keys_definition_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/media_keys_definition_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/ood_threshold_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/ood_threshold_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/ood_threshold_api/inc/UiklafInternalCRKeys.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/ood_threshold_api/inc/UiklafInternalCRKeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -63,6 +63,13 @@
  */
 const TUint32 KUikOODDiskFreeSpaceWarningNoteLevel = 0x00000006;
 
+/**
+ * Threshold for disk space warning note level for mass memory.
+ * Read-only key. Default value: 20971520
+ */
+const TUint32 KUikOODDiskFreeSpaceWarningNoteLevelMassMemory = 0x00000007;
+
+
 #endif __UIKLAF_INTERNAL_CR_KEYS_H__
 
 // End of file
--- a/appsupport_plat/ood_threshold_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_api/inc/oommonitor.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/oom_monitor_api/inc/oommonitor.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -16,11 +16,10 @@
 */
 
 
-#include <e32hashtab.h>
-#include <f32file.h>
+#ifndef OOMMONITOR_H
+#define OOMMONITOR_H
+
 #include <w32std.h>
-#include <apgtask.h>
-#include <e32property.h>
 
 /**
  * Creates thread for OOM watchers.
@@ -28,248 +27,4 @@
  */
 IMPORT_C void CreateOOMWatcherThreadL();
 
-// ---------------------------------------------------------
-// CMemoryMonitor
-// ---------------------------------------------------------
-//
-class COutOfMemoryWatcher;
-class CSubscribeHelper;
-class COomMonitorPlugin;
-class COomPlugins;
-class CAppCloseTimer;
-class CAppCloseWatcher;
-class CMemoryMonitorServer;
-class CWservEventReceiver;
-class RResourceFile;
-class CApaWindowGroupName;
-
-NONSHARABLE_CLASS(CMemoryMonitor) : public CBase
-    {
-public:
-    static CMemoryMonitor* NewL();
-    ~CMemoryMonitor();
-
-public: // event handlers
-    void FreeMemThresholdCrossedL();
-    void CloseAppEvent();
-    void AppNotExiting(TInt aWgId);
-    void StartFreeSomeRamL(TInt aTargetFree);
-    void HandleFocusedWgChangeL();
-    
-private:
-    CMemoryMonitor();
-    void ConstructL();
-    void CloseAppsFinished(TBool aMemoryGood);
-    static TInt WatchdogStatusStatusChanged(TAny* aPtr);
-    void HandleWatchdogStatusCallBackL();
-    void ColapseWindowGroupTree();
-    void SetPluginMemoryGood(TBool aSetToGood);
-    void GetWgsToCloseL();
-    TBool FreeMemoryAboveThreshold();
-    void CancelAppCloseWatchers();
-    TInt AppCloseOrder(TInt aWgIndex, TInt aWgId);
-    void CloseNextApp();
-    void ReadAppResourceArrayL(RResourceFile& aResFile, TInt aResId, TInt aOrderBase, TInt aOrderInc);
-	void RestartAppCloser();
-	
-public:
-	// All members are owned
-    // generally useful sessions
-    RFs iFs;
-    RWsSession iWs;
-
-private:
-	// All members are owned, except where stated
-    // parameters for OOM watcher.
-    TInt iLowThreshold;
-    TInt iGoodThreshold;
-    TInt iMaxExitTime; // Time we wait for application exit gracefully, after this we'll try to shut next application down.
-    TInt iRamPluginRunTime; // Time we wait for plugins to free RAM before we start to shut apps.
-
-    // parameters for app close order
-    enum TAppCloseOrderConstants
-        {
-        ECloseFirst = -1000000,        // apps to close first are given an order around negative one million
-        ECloseNormal = 0,            // apps to close normally are given an order around zero
-        ECloseLast = 1000000,        // apps to close last are given an order around one million
-        ENeverClose = 1000000000    // one billion signals apps that should never be closed
-        };
-    typedef RHashMap<TInt, TInt> RAppCloseOrderMap;    // maps app UID to close order
-    RAppCloseOrderMap iAppCloseOrderMap;
-
-    // internal
-    CApaWindowGroupName* iWgName;
-    HBufC* iWgNameBuf;              // owned by iWgName
-
-    // app closer state
-    TBool iAppCloserRunning;
-    TInt iCurrentTarget;
-    TApaTask iCurrentTask;
-    RArray<RWsSession::TWindowGroupChainInfo> iWgIds;
-    TInt iNextAppToClose;
-    TBool iMemoryAboveThreshold;
-    
-    // event receivers
-    CAppCloseTimer* iAppCloseTimer;
-    CAppCloseWatcher* iAppCloseWatcher;
-    COutOfMemoryWatcher* iOOMWatcher;
-    CWservEventReceiver* iWservEventReceiver;
-
-    // parameters for P&S watcher.
-    RProperty iWatchdogStatusProperty;
-    CSubscribeHelper* iWatchdogStatusSubscriber;
-
-    // Plugin support
-    COomPlugins* iPlugins;
-    TBool iPluginMemoryGood;
-    
-    // Server
-    CMemoryMonitorServer* iServer;
-    };
-
-
-
-NONSHARABLE_CLASS(COutOfMemoryWatcher) : public CActive
-    {
-public:
-    static COutOfMemoryWatcher* NewL(CMemoryMonitor& aLafShutdown, TInt aLowThreshold, TInt aGoodThreshold);
-    ~COutOfMemoryWatcher();
-    void Start();
-private:
-    COutOfMemoryWatcher(CMemoryMonitor& aLafShutdown);
-    void ConstructL(TInt aLowThreshold, TInt aGoodThreshold);
-private: // from CActive
-    void DoCancel();
-    void RunL();
-private: // data
-    RChangeNotifier iChangeNotifier;
-    CMemoryMonitor& iLafShutdown;
-    };
-
-NONSHARABLE_CLASS(CSubscribeHelper) : public CActive
-    {
-public:
-    CSubscribeHelper(TCallBack aCallBack, RProperty& aProperty);
-    ~CSubscribeHelper();
-
-public: // New functions
-    void SubscribeL();
-    void StopSubscribe();
-
-private: // from CActive
-    void RunL();
-    void DoCancel();
-
-private:
-    TCallBack   iCallBack;
-    RProperty&  iProperty;
-    };
-
-
-NONSHARABLE_CLASS(COomPlugins) : public CBase
-    {
-public:
-    COomPlugins();
-    ~COomPlugins();
-    void ConstructL();
-    
-public:
-    void FreeRam();
-    void MemoryGood();
-    
-private:
-    struct TPlugin
-        {
-        TPlugin();
-        COomMonitorPlugin* iImpl;
-        TUid iDtorUid;
-        };
-
-private:
-    RArray<TPlugin> iPlugins;
-    };
-
-
-NONSHARABLE_CLASS(CAppCloseTimer) : public CTimer
-    {
-public:
-    static CAppCloseTimer* NewL(CMemoryMonitor& aMonitor);
-private:
-    CAppCloseTimer(CMemoryMonitor& aMonitor);
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    };
-
-
-NONSHARABLE_CLASS(CAppCloseWatcher) : public CActive
-    {
-public:
-    CAppCloseWatcher(CMemoryMonitor& aMonitor);
-    ~CAppCloseWatcher();
-    void Start(const TApaTask& aTask);
-private:
-    void DoCancel();
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    RThread iThread;
-    TProcessPriority iOriginalProcessPriority;
-    };
-
-
-NONSHARABLE_CLASS(CWservEventReceiver) : public CActive
-    {
-public:
-    CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs);
-    ~CWservEventReceiver();
-    void ConstructL();
-private:
-    void Queue();
-    void DoCancel();
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    RWsSession& iWs;
-    RWindowGroup iWg;
-    };
-
-
-NONSHARABLE_CLASS(CMemoryMonitorServer) : public CServer2
-    {
-public:
-    static CMemoryMonitorServer* NewL(CMemoryMonitor& aMonitor);
-    ~CMemoryMonitorServer();
-
-    CMemoryMonitor& Monitor();
-    void CloseAppsFinished(TBool aMemoryGood);
-
-private:
-    CMemoryMonitorServer(CMemoryMonitor& aMonitor);
-    void ConstructL();
-    CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
-    TInt RunError(TInt aError);
-
-private:
-    CMemoryMonitor& iMonitor;
-    };
-
-
-NONSHARABLE_CLASS(CMemoryMonitorSession) : public CSession2
-    {
-public:
-    CMemoryMonitorSession();
-    void CreateL();
-    void CloseAppsFinished(TBool aMemoryGood);
-
-private:
-    ~CMemoryMonitorSession();
-    CMemoryMonitorServer& Server();
-    CMemoryMonitor& Monitor();
-    void ServiceL(const RMessage2& aMessage);
-
-private:
-    RMessagePtr2 iRequestFreeRam;
-    };
-
-
+#endif // OOMMONITOR_H
--- a/appsupport_plat/oom_monitor_api/inc/oommonitorsession.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/oom_monitor_api/inc/oommonitorsession.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -21,50 +21,125 @@
 
 #include <e32std.h>
 
+const TInt KOomMaxAllocationWithoutPermission = 1048576;
+const TUid KOomMemoryMonitorStatusPropertyCategory = {0x10207218};
+const TUint32 KOomMemoryMonitorStatusPropertyKey = 0;
+enum TMemoryMonitorStatusPropertyValues
+    {
+    // Above Treshhold: Free Ram is above good treshhold point and memory monitor isn't freeing any memory
+    EAboveTreshHold,
+    
+    // Freeing Memory: Memory monitor is in the middle of freeing memory
+    EFreeingMemory,
+    
+    // Below Treshhold: Memory monitor has tried to free some RAM but total memory is still below treshhold and memory monitor has given up freeing more memory.
+    EBelowTreshHold
+    };
 class ROomMonitorSession : public RSessionBase
-	{
+    {
+public:
+
+    /**  Defines the application priorities of OOM monitor. */
+    enum TOomPriority
+        {
+        /**
+        * Application can be closed if needed.
+        */
+        EOomPriorityNormal = 0,
+
+        /**
+        * Application should not be closed if possible.
+        */
+        EOomPriorityHigh,
+
+        /**
+        * Application is busy and should not be closed.
+        */
+        EOomPriorityBusy
+        };
+
 public:
-	/**
-	* Connects a new session.
-	* Sessions must be connected before any other APIs can be used.
-	* When the client has finished using a session, Close() must be called.
-	* @return KErrNone if successful, error code otherwise.
-	*/
-	IMPORT_C TInt Connect();
-	/**
-	* Request that the OOM monitor attempts to free some memory.
-	* This function may take several seconds to execute, depending on
-	* the memory state. It will not return until the attempt to recover
-	* memory has completed.
-	* @param aBytesRequested The number of bytes of free memory that the client requests.
-	* @return KErrNone if the request memory is free. KErrNoMemory if that
-	*         amount of memory could not be recovered. Other error codes may
-	*         also be returned.
-	*/
-	IMPORT_C TInt RequestFreeMemory(TInt aBytesRequested);
-	/**
-	* Request that the OOM monitor attempts to free some memory.
-	* This is an asynchronous version of the request for free memory.
-	* @param aBytesRequested The number of bytes of free memory that the client requests.
-	* @param aStatus will be completed when the attempt to recover memory
-	*        has finished. This may take several seconds, depending on
-	*        the memory state. On completion, aStatus will be set to 
-	*        KErrNone if the request memory is free. KErrNoMemory if that
-	*        amount of memory could not be recovered. Other error codes may
-	*        also be set.
-	*/
-	IMPORT_C void RequestFreeMemory(TInt aBytesRequested, TRequestStatus& aStatus);
-	/**
-	* Cancels the asynchronous request for free memory.
-	*/
-	IMPORT_C void CancelRequestFreeMemory();
-	/**
-	* Notifiy the OOM monitor that this application is not responding
-	* to the EEikCmdExit request to exit the application.
-	* This function is used by the Avkon framework's app shutter.
-	* @param aWgId the window group identifier of the app that is not exiting.
-	*/
-	IMPORT_C void ThisAppIsNotExiting(TInt aWgId);
-	};
+    /**
+    * Connects a new session.
+    * Sessions must be connected before any other APIs can be used.
+    * When the client has finished using a session, Close() must be called.
+    * @return KErrNone if successful, error code otherwise.
+    */
+    IMPORT_C TInt Connect();
+
+    /**
+    * Request that the OOM monitor attempts to free some paged memory.
+    * This function may take several seconds to execute, depending on
+    * the memory state. It will not return until the attempt to recover
+    * memory has completed.
+    * @param aBytesRequested The number of bytes of free memory that the client requests.
+    * @return KErrNone if the request memory is free. KErrNoMemory if that
+    *         amount of memory could not be recovered. Other error codes may
+    *         also be returned.
+    */
+    IMPORT_C TInt RequestFreeMemory(TInt aBytesRequested);
+
+    /**
+    * Request that the OOM monitor attempts to free some paged memory.
+    * This is an asynchronous version of the request for free paged memory.
+    * @param aBytesRequested The number of bytes of free memory that the client requests.
+    * @param aStatus will be completed when the attempt to recover memory
+    *        has finished. This may take several seconds, depending on
+    *        the memory state. On completion, aStatus will be set to 
+    *        KErrNone if the request memory is free. KErrNoMemory if that
+    *        amount of memory could not be recovered. Other error codes may
+    *        also be set.
+    */
+    IMPORT_C void RequestFreeMemory(TInt aBytesRequested, TRequestStatus& aStatus);
+    
+    /**
+    * Request that the OOM monitor attempts to free some memory for an optional allocation.
+    * The passed in plugin ID is used to determine the priority for this allocation.
+    * Lower priority OOM actions may be executed to free enough RAM for this allocation.
+    * This function may take several seconds to execute, depending on
+    * the memory state. It will not return until the attempt to recover
+    * memory has completed.
+    * @param aBytesRequested The number of bytes of free memory that the client requests.
+    * @param aPluginId The ID of the plugin that may delete the allocation in event of low memory.
+    * @return KErrNone if the request memory is free. KErrNoMemory if that
+    *         amount of memory could not be recovered. Other error codes may
+    *         also be returned.
+    */
+    IMPORT_C TInt RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable);
+    
+    /**
+    * Request that the OOM monitor attempts to free some memory for an optional allocation.
+    * The passed in plugin ID is used to determine the priority for this allocation.
+    * Lower priority OOM actions may be executed to free enough RAM for this allocation.
+    * This function may take several seconds to execute, depending on
+    * the memory state. It will not return until the attempt to recover
+    * memory has completed.
+    * @param aBytesRequested The number of bytes of free memory that the client requests.
+    * @param aPluginId The ID of the plugin that may delete the allocation in event of low memory.
+    * @param aStatus The TRequestStatus (completes with the number of bytes freed (aStatus >= 0) or an error (aStatus <= 0))
+    * @return None
+    */
+    IMPORT_C void RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TRequestStatus& aStatus);
+
+    /**
+    * Cancels the asynchronous request for free memory.
+    */
+    IMPORT_C void CancelRequestFreeMemory();
+
+    /**
+    * Notify the OOM monitor that this application is not responding
+    * to the EEikCmdExit request to exit the application.
+    * This function is used by the Avkon framework's app shutter.
+    * @param aWgId the window group identifier of the app that is not exiting.
+    */
+    IMPORT_C void ThisAppIsNotExiting(TInt aWgId);
+
+    /**
+    * Notify the OOM monitor that this application has the specified priority
+    * @param aPriority the priority of the application
+    */
+    IMPORT_C void SetOomPriority(TOomPriority aPriority);
+    
+    };
 
 #endif // R_OOMMONITORSESSION_H
--- a/appsupport_plat/oom_monitor_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -99,6 +99,44 @@
 	};
 
 
+class COomMonitorPluginV2 : public COomMonitorPlugin
+	{
+public:	// From COomMonitorPlugin
+	/**
+	* FreeRam is called when the system RAM level becomes
+	* low. This plugin is requested to help free some RAM.
+	* 
+	* Note that OomMonitorV2 will not call this version of the function so it does not need to be implemented.
+	*/
+	IMPORT_C virtual void FreeRam();
+
+	/**
+	* MemoryGood is called when the system RAM level becomes
+	* good after being low.The plugin may take this opportunity
+	* to start using RAM again.
+	* Nb It is assumed that the plugin will not immediately
+	* cause a large increase in memory use, but that memory may be
+	* used over time, otherwise the plugin may cause oscillation
+	* between low and good memory states.
+	*/
+	virtual void MemoryGood() = 0;
+
+public:	
+	/**
+	* FreeRam is called when the system RAM level becomes
+	* low. This plugin is requested to help free some RAM.
+	* Note that it is desirable to delete all memory associated with this plugin if
+	* not using a disconnected chunk. The reason for this is that by only releasing a small amount
+	* of the memory you reduce the chances of that memory being at the end of the chunk and therefore
+	* reduce the likelihood of it being released to the system.
+	* @param aBytesToFree The minimum number of bytes of free memory that the plugin should try to free.
+	*/
+	virtual void FreeRam(TInt aBytesToFree) = 0;
+
+	};
+
+
+
 /**
 * CAppOomMonitorPlugin is a specialised OOM monitor plugin
 * that sends messages to applications when the memory state
--- a/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.hrh	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -22,4 +22,6 @@
 #define KOomPluginInterfaceUidValue 0x10281eea
 #define KOomPluginInterfaceUid (TUid::Uid(KOomPluginInterfaceUidValue))
 
+#define KOomPluginInterfaceV2UidValue 0x10286A80
+#define KOomPluginInterfaceV2Uid (TUid::Uid(KOomPluginInterfaceV2UidValue))
 #endif // OOMMONITORPLUGIN_HRH
--- a/appsupport_plat/operation_provider_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/operation_provider_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/operation_provider_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/phonecmdhandler_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/phonecmdhandler_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/phonecmdhandler_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_api/inc/rfsClient.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/restore_factory_settings_api/inc/rfsClient.h	Thu Jun 24 13:52:58 2010 +0100
@@ -24,7 +24,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include "RfsHandler.h"
+#include "rfsHandler.h"
 
 // CONSTANTS
 
--- a/appsupport_plat/restore_factory_settings_api/inc/rfsHandler.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/restore_factory_settings_api/inc/rfsHandler.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -41,12 +41,11 @@
 
 // FORWARD DECLARATIONS
 
-class CAknQueryDialog;
-class CAknInformationNote;
 class CEikonEnv;
 class CSecurityHandler;
 class CRfsSecurityHandler;
 class CRfsPdpObserver;
+class CHbDeviceMessageBoxSymbian;
 
 // CLASS DECLARATION
 
@@ -164,7 +163,7 @@
         TInt iFlags;
 
         // confirmation query
-        CAknQueryDialog* iQuery;
+        CHbDeviceMessageBoxSymbian* iQuery;
 
         // for security code query when using SecUI
         CSecurityHandler* iSecurityHandler;
--- a/appsupport_plat/restore_factory_settings_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/restore_factory_settings_plugin_api/inc/rfsPlugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/restore_factory_settings_plugin_api/inc/rfsPlugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <ecom/ECom.h>
+#include <ecom/ecom.h>
 #include <rfsPluginDef.h>
 
 // CONSTANTS
--- a/appsupport_plat/secondary_display_accfw_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_accfw_api/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/secondary_display_accfw_api/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -24,4 +24,4 @@
 
 PRJ_EXPORTS
 
-../inc/secondarydisplay/SecondaryDisplayAccFwAPI.h     MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/SecondaryDisplayAccFwAPI.h)
+../inc/secondarydisplay/SecondaryDisplayAccFwAPI.h     MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/SecondaryDisplayAccFwAPI.h)
--- a/appsupport_plat/secondary_display_accfw_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_accfw_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_accfw_api/inc/secondarydisplay/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_startup_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_startup_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_startup_api/inc/SecondaryDisplay/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_startup_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_sysap_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_sysap_api/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/secondary_display_sysap_api/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -24,4 +24,4 @@
 
 PRJ_EXPORTS
 
-../inc/secondarydisplay/SecondaryDisplaySysApAPI.h     MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/SecondaryDisplaySysApAPI.h)
+../inc/secondarydisplay/SecondaryDisplaySysApAPI.h     MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/SecondaryDisplaySysApAPI.h)
--- a/appsupport_plat/secondary_display_sysap_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_sysap_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_sysap_api/inc/secondarydisplay/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_system_state_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_system_state_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_system_state_api/inc/SecondaryDisplay/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/secondary_display_system_state_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/sensor_user_setting_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/sensor_user_setting_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/sensor_user_setting_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/startup_configuration_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/startup_configuration_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/startup_configuration_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_key_handler_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_key_handler_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_key_handler_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_key_handler_plugin_api/inc/sysapkeyhandlerplugininterface.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/appsupport_plat/system_application_key_handler_plugin_api/inc/sysapkeyhandlerplugininterface.h	Thu Jun 24 13:52:58 2010 +0100
@@ -23,8 +23,8 @@
 // INCLUDES
 #include <ecom/ecom.h>
 #include <e32base.h>
-#include <COEDEF.H>
-#include <W32STD.H>
+#include <coedef.h>
+#include <w32std.h>
 #include <sysapcallback.h>
 
 //CONSTANTS
--- a/appsupport_plat/system_application_light_control_plugin_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_light_control_plugin_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_light_control_plugin_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_notification_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_notification_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_notification_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_plugin_callback_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_plugin_callback_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_plat/system_application_plugin_callback_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/rom_files/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/sis/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/flash_viewer_framework_api/tsrc/bc/flashviewerframework/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/Bmarm/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/Bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/appsupport_pub/network_status_api/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/AlarmAlert/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/AlarmAlert/Shared/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/AlarmAlert/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Client/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Client/Source/ASCliSession.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/commonappservices/alarmserver/Client/Source/ASCliSession.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -742,6 +742,7 @@
 */
 EXPORT_C void RASCliSession::GetAvailableCategoryListL(RArray<TAlarmCategory>& aCategories) const
 	{
+	CleanupClosePushL(aCategories);
 	// First step is to build the transfer buffer in the server
 	// and get the size (in bytes) so that we know
 	// how big to make the client-side (corresponding) temporary one.
@@ -768,6 +769,8 @@
 	//
 	stream.Close();
 	CleanupStack::PopAndDestroy(2, buffer);
+  // relieve the ownership of the array to the caller
+  CleanupStack::Pop(&aCategories);
 	}
 
 
@@ -1328,6 +1331,7 @@
 */
 void RASCliSession::FetchAlarmIdsFromBufferL(RArray<TAlarmId>& aAlarmIds, TInt aBufferSize) const
 	{
+	CleanupClosePushL(aAlarmIds);
 	CBufBase* buffer = FetchTransferBufferLC(aBufferSize);
 
 	// The buffer just contains serialized TAlarmId's so we need to
@@ -1344,6 +1348,8 @@
 		}
 	//
 	CleanupStack::PopAndDestroy(2, buffer);
+	// relieve the ownership of the array to the caller
+	CleanupStack::Pop(&aAlarmIds); 
 	}
 
 /** 
--- a/commonappservices/alarmserver/Client/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/ConsoleAlarmAlertServer/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/ConsoleAlarmAlertServer/Source/ConsoleAlarmAlertSession.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/commonappservices/alarmserver/ConsoleAlarmAlertServer/Source/ConsoleAlarmAlertSession.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -16,7 +16,7 @@
 #include "ConsoleAlarmAlertSession.h"
 #include <e32svr.h>
 #include <asaltdefs.h>
-#include <test/consoleantestclient.h>
+#include "test/consoleantestclient.h"
 #include "ConsoleAlarmAlertSession.h"
 #include "ConsoleAlarmAlertConsole.h"
 #include "ConsoleAlarmAlertLEDFlasher.h"
--- a/commonappservices/alarmserver/ConsoleAlarmAlertServer/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/ConsoleAlarmAlertServer/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file commonappservices/alarmserver/Design/EALWL to Alarm Server Porting Guide.doc has changed
--- a/commonappservices/alarmserver/Design/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file commonappservices/alarmserver/Documentation/SGL.GT0257.207_Rev1.1_Alarm_Server_Configuration_how_to.doc has changed
Binary file commonappservices/alarmserver/Documentation/alarm server test code.doc has changed
--- a/commonappservices/alarmserver/Documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Group/TEF_AlarmServerCIT.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"TEF_AlarmServerCIT.pkg EN"}
+
+; Vendor name
+: "TEF_AlarmServerCIT"
+
+
+"\epoc32\data\C\CITAlarmServer\scripts\TestCITAlarmServer.script"-"c:\CITAlarmServer\scripts\TestCITAlarmServer.script"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Group/alarmserverunittestserver.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,39 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"alarmserverunittestserver.pkg EN"}
+
+; Vendor name
+: "alarmserverunittestserver"
+
+"\epoc32\data\z\testdata\scripts\TEAlarmServer.script"-"c:\testdata\scripts\TEAlarmServer.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_loop.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_man.script"-"c:\testdata\scripts\TEAlarmServer_man.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_man_TC3.script"-"c:\testdata\scripts\TEAlarmServer_man_TC3.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_man_exceptTC3.script"-"c:\testdata\scripts\TEAlarmServer_man_exceptTC3.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_repeat.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_stop.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_disabled.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_disordered.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_ini.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_invalid.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_apc_norsc.script"-"c:\testdata\scripts\TEAlarmServer_apc.script"
+"\epoc32\data\z\testdata\scripts\TEAlarmServer_man_exceptTC3.script"-"c:\testdata\scripts\TEAlarmServer_man.script"
\ No newline at end of file
--- a/commonappservices/alarmserver/Group/backup_registration.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/commonappservices/alarmserver/Group/backup_registration.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,10 @@
 <?xml version="1.0" standalone="yes"?>
 
 <!--
- Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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/commonappservices/alarmserver/Group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Server/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Server/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Shared/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Shared/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file commonappservices/alarmserver/Test/Integration/AlarmTestServer/documentation/SGL.GT0257.603_AlarmServer updatesTest Specification.doc has changed
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/AlarmTestServer/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/Documentation/SGL.GT0257.612.Bravo_SystemSupportForUTC_Test_Case_PREQ234 Rev1.0.doc has changed
--- a/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/Documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/group/TEF_AlarmServerCIT.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"TEF_AlarmServerCIT.pkg EN"}
+
+; Vendor name
+: "TEF_AlarmServerCIT"
+
+
+"\epoc32\data\C\CITAlarmServer\scripts\TestCITAlarmServer.script"-"c:\CITAlarmServer\scripts\TestCITAlarmServer.script"
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/testdata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/group/consolealarmalertserver.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/commonappservices/alarmserver/Test/group/consolealarmalertserver.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -30,7 +30,7 @@
 USERINCLUDE				../../ConsoleAlarmAlertServer/Include
 USERINCLUDE				../../AlarmAlert/Shared
 USERINCLUDE				../../Shared/Include
-USERINCLUDE				..
+USERINCLUDE				../..
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 APP_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/commonappservices/alarmserver/Test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/ssm/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/unit/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/unit/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/unit/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/Test/unit/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmserver/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestAlarmSrv/AlarmCreateDelete/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestAlarmSrv/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestAlarmSrv/startconsolealarmalertserver/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestMultipleAlarmsSuite/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestMultipleAlarmsSuite/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestMultipleAlarmsSuite/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestMultipleAlarmsSuite/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/alarmservertest/TestMultipleAlarmsSuite/testdata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file commonappservices/appservicesdocs/App-Services_Architectural_Description.doc has changed
Binary file commonappservices/appservicesdocs/App-Services_Functional_Specification.doc has changed
Binary file commonappservices/appservicesdocs/PIMTestCodeOrganisationHowTo.doc has changed
Binary file commonappservices/appservicesdocs/SGL.GT0109.110_Rev1.2_AppServices_Subsystem_Release_Note.doc has changed
Binary file commonappservices/appservicesdocs/SGL.GT228.017_Migration Guide for v9.1 Time Handling APIs.doc has changed
--- a/commonappservices/appservicesdocs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/Group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/Inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/TestServer/Client/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/TestServer/Inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/TestServer/Server/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/TestServer/Test/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/commonappservices/coreappstest/preparedrivec/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file contenthandling/webrecognisers/Documentation/Recogniser Test Specifications.doc has changed
--- a/contenthandling/webrecognisers/Documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/Group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_ebookmark/TestData/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_ebookmark/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_recogtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_recwap/TestData/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_recwap/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_recweb/TestData/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_recweb/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/Test/t_weburlrec/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/eBookmark/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file contenthandling/webrecognisers/eBookmark/ebookmark.doc has changed
--- a/contenthandling/webrecognisers/eBookmark/examples/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/group/BLD.INF	Mon Feb 08 13:38:38 2010 +0000
+++ b/contenthandling/webrecognisers/group/BLD.INF	Thu Jun 24 13:52:58 2010 +0100
@@ -24,8 +24,6 @@
 // If there's no destination then the source file will be copied
 // to the same name in /epoc32/include
 
-../eBookmark/ebookmark.doc /epoc32/engdoc/ebookmark/ebookmark.doc
-
 ../group/recognisers.iby /epoc32/rom/include/recognisers.iby
 
 ../waprecogniser/wapmime.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(wapmime.h)
--- a/contenthandling/webrecognisers/group/application-protocols_recognisers.mrp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contenthandling/webrecognisers/group/application-protocols_recognisers.mrp	Thu Jun 24 13:52:58 2010 +0100
@@ -2,7 +2,6 @@
 source	\sf\mw\appsupport\contenthandling\webrecognisers
 binary	\sf\mw\appsupport\contenthandling\webrecognisers\group	all
 exports	\sf\mw\appsupport\contenthandling\webrecognisers\group
--export_file	\sf\mw\appsupport\contenthandling\webrecognisers\eBookmark\ebookmark.doc	\epoc32\engdoc\ebookmark\eBookmark.doc
 notes_source	\component_defs\release.src
 
 
--- a/contenthandling/webrecognisers/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/recweb/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/waprecogniser/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contenthandling/webrecognisers/weburlrec/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/CenRep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -32,9 +32,9 @@
 ../conf/contextframework_10282BCE.crml 	    MW_LAYER_CRML(contextframework_10282BCE.crml)
 ../conf/contextframework_200159ED.crml 	    MW_LAYER_CRML(contextframework_200159ED.crml)
 
-../data/backup_registration.xml /epoc32/data/Z/private/10282BC4/backup_registration.xml
-../data/backup_registration.xml /epoc32/release/winscw/UDEB/Z/private/10282BC4/backup_registration.xml
-../data/backup_registration.xml /epoc32/release/winscw/UREL/Z/private/10282BC4/backup_registration.xml
+../data/backup_registration.xml /epoc32/data/z/private/10282bc4/backup_registration.xml
+../data/backup_registration.xml /epoc32/release/winscw/udeb/z/private/10282bc4/backup_registration.xml
+../data/backup_registration.xml /epoc32/release/winscw/urel/z/private/10282bc4/backup_registration.xml
 
 #ifdef RD_CONTEXT_FRAMEWORK
 ../rom/ContextFramework.iby CORE_MW_LAYER_IBY_EXPORT_PATH(ContextFramework.iby)
--- a/contextframework/cfw/group/cfactivatorengine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfactivatorengine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET        			CFActivatorEngine.dll
+TARGET        			cfactivatorengine.dll
 TARGETTYPE    			dll
 UID           			0x1000008d 0x10282BC6
 
--- a/contextframework/cfw/group/cfclient.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfclient.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET          		CFClient.dll
+TARGET          		cfclient.dll
 TARGETTYPE      		dll
 UID             		0x1000008d 0x10282BC3
 
--- a/contextframework/cfw/group/cfcontextsourcemanager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfcontextsourcemanager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET                  CFContextSourceManager.dll
+TARGET                  cfcontextsourcemanager.dll
 TARGETTYPE              dll
 UID                     0x1000008d 0x10282BCB
 
--- a/contextframework/cfw/group/cfcontextsourcesettingsmanager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfcontextsourcesettingsmanager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET          	CFContextSourceSettingsManager.dll
+TARGET          	cfcontextsourcesettingsmanager.dll
 TARGETTYPE      	dll
 UID             	0x1000008d 0x10282ED9
 
--- a/contextframework/cfw/group/cfscriptengine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfscriptengine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET          		CFScriptEngine.dll
+TARGET          		cfscriptengine.dll
 TARGETTYPE      		dll
 UID             		0x1000008d 0x10282BC7
 EPOCSTACKSIZE   		20480
@@ -54,7 +54,7 @@
 LIBRARY         		cfservices.lib
 LIBRARY         		cfoperationpluginservices.lib
 LIBRARY         		ecom.lib
-LIBRARY				PlatformEnv.lib
+LIBRARY				platformenv.lib
 #ifdef TRACE_INTO_FILE
 LIBRARY         		flogger.lib
 #endif
--- a/contextframework/cfw/group/cfserver.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfserver.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET		  	CFServer.exe
+TARGET		  	cfserver.exe
 TARGETTYPE	    	exe
 UID			0 0x10282BC4
 
--- a/contextframework/cfw/group/cfservices.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/group/cfservices.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/common/cftraceconfiguration.hrh"
 
-TARGET          		CFServices.dll
+TARGET          		cfservices.dll
 TARGETTYPE      		dll
 UID             		0x1000008d 0x10282BC5
 
--- a/contextframework/cfw/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/basicoperationsplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfactivatorengine/CFActivatorEngineActionPluginManager.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/inc/cfactivatorengine/CFActivatorEngineActionPluginManager.h	Thu Jun 24 13:52:58 2010 +0100
@@ -158,6 +158,8 @@
          * Not own. Can be NULL
          */
         MCFStarterEventHandler* iEventHandler;
+// JNIA-849K7Gs
+	TBool iUpdatePluginsAllowed;
     };
 
 #endif
--- a/contextframework/cfw/inc/cfactivatorengine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfclient/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfcontextsourcemanager/CFContextSourceManager.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/inc/cfcontextsourcemanager/CFContextSourceManager.h	Thu Jun 24 13:52:58 2010 +0100
@@ -288,6 +288,8 @@
 
         // Event handler, not own, can be NULL
         MCFStarterEventHandler* iEventHandler;
+	//JNIA-849K7G Error
+	TBool iUpdatePluginsAllowed;
     };
 
 #endif
--- a/contextframework/cfw/inc/cfcontextsourcemanager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfcontextsourcesettingsmanager/cfcontextsourcesettingsmanagerimpl.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/inc/cfcontextsourcesettingsmanager/cfcontextsourcesettingsmanagerimpl.h	Thu Jun 24 13:52:58 2010 +0100
@@ -23,7 +23,7 @@
 
 #include "cfcontextsourcesettingsmanager.h"
 
-#include <GMXMLParser.h>
+#include <gmxmlparser.h>
 
 class RFs;
 class CMDXMLNode;
--- a/contextframework/cfw/inc/cfcontextsourcesettingsmanager/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfoperationpluginservices/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfscriptengine/CFScriptHandler.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/inc/cfscriptengine/CFScriptHandler.h	Thu Jun 24 13:52:58 2010 +0100
@@ -21,7 +21,7 @@
 
 #include <f32file.h>
 #include <badesca.h>
-#include <GMXMLParser.h>
+#include <gmxmlparser.h>
 
 #include "CFScriptEngineInterface.h"
 #include "cfstarterobserver.h"
--- a/contextframework/cfw/inc/cfscriptengine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfserver/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/cfservices/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/inc/common/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/basicoperationsplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfactivatorengine/CFActivatorEngineActionPluginManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/src/cfactivatorengine/CFActivatorEngineActionPluginManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -268,7 +268,7 @@
 void CCFActivatorEngineActionPluginManager::InitLoadingPluginsPhaseL()
     {
     FUNC_LOG;
-
+	iUpdatePluginsAllowed = ETrue;
     UpdatePlugInsL();
     }
 
@@ -280,7 +280,7 @@
 void CCFActivatorEngineActionPluginManager::UpdatePlugInsL()
 	{
     FUNC_LOG;
-
+	if (!iUpdatePluginsAllowed){return;}
     // List all plugins
     RImplInfoPtrArray implInfoArray;
     CleanupPushImplInfoArrayL( implInfoArray );
--- a/contextframework/cfw/src/cfactivatorengine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfclient/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfcontextsourcemanager/CFContextSourceManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/src/cfcontextsourcemanager/CFContextSourceManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -477,7 +477,7 @@
 void CCFContextSourceManager::UpdatePlugInsL()
 	{
     FUNC_LOG;
-
+	if (!iUpdatePluginsAllowed){return;}
     // List all plugins
     RImplInfoPtrArray implInfoArray;
     CleanupResetAndDestroyPushL( implInfoArray );
@@ -784,7 +784,7 @@
 void CCFContextSourceManager::InitLoadingPluginsPhaseL()
     {
     FUNC_LOG;
-
+	iUpdatePluginsAllowed = ETrue;
     UpdatePlugInsL();
     }
 
--- a/contextframework/cfw/src/cfcontextsourcemanager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfcontextsourcesettingsmanager/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfoperationpluginservices/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfscriptengine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfserver/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/src/cfservices/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/cfwtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/cfwtest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_BasicOperationsPlugIn/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_BasicOperationsPlugIn/mt_basicoperationsplugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_BasicOperationsPlugIn/mt_basicoperationsplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -35,7 +35,6 @@
 #include "CFTestDelay.h"
 #include "cffakeenv.h"
 #include "ScriptEventNotifierSession.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 
@@ -66,8 +65,6 @@
 // Destructor (virtual by CBase)
 mt_basicoperationsplugin::~mt_basicoperationsplugin()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -81,9 +78,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-    
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/MT_CFClient/MT_CFClient.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_CFClient/MT_CFClient.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -37,7 +37,6 @@
 #include "testcontextsourceplugin.h"
 #include "testcontextsourcepluginconst.hrh"
 #include "CFTestDelay.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 
@@ -306,9 +305,6 @@
 MT_CFClient::~MT_CFClient( )
     {
     Teardown();
-
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -322,9 +318,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL ( );
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/MT_CFClient/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceManager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceManager/MT_CFContextSourceManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceManager/MT_CFContextSourceManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -30,7 +30,6 @@
 #include "cfcontextsourcesettingarray.h"
 
 #include "testcontextsourceplugin.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 
@@ -103,9 +102,6 @@
 MT_CFContextSourceManager::~MT_CFContextSourceManager()
     {
     Teardown();
-
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -119,9 +115,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceSettingsManager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceSettingsManager/MT_CFContextSourceSettingsManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_CFContextSourceSettingsManager/MT_CFContextSourceSettingsManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -27,7 +27,6 @@
 #include <cfcontextsourcesettingparameter.h>
 #include <cfkeyvaluepair.h>
 
-#include "cfenvutils.h"
 
 //  INTERNAL INCLUDES
 
@@ -67,9 +66,6 @@
 MT_CFContextSourceSettingsManager::~MT_CFContextSourceSettingsManager()
     {
     Teardown();
-
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -83,9 +79,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/MT_CFOperationPluginManager/MT_CFOperationPluginManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_CFOperationPluginManager/MT_CFOperationPluginManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -27,7 +27,6 @@
 
 //  INTERNAL INCLUDES
 #include "cfscripthandler.h"
-#include "cfenvutils.h"
 
 // CONSTRUCTION
 MT_CFOperationPluginManager* MT_CFOperationPluginManager::NewL()
@@ -51,8 +50,6 @@
 // Destructor (virtual by CBase)
 MT_CFOperationPluginManager::~MT_CFOperationPluginManager()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -66,9 +63,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/MT_CFOperationPluginManager/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_CFScriptEngine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/MT_CFScriptEngine/MT_CFScriptEngine.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/MT_CFScriptEngine/MT_CFScriptEngine.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -36,7 +36,6 @@
 #include "ScriptEventNotifierSession.h"
 #include "basicoperationspluginconst.hrh"
 #include "cfcommon.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 
@@ -68,8 +67,6 @@
 // Destructor (virtual by CBase)
 MT_CFScriptEngine::~MT_CFScriptEngine()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -83,9 +80,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 
--- a/contextframework/cfw/tsrc/public/basic/TestActionPlugIn/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestActionPlugIn/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestActionPlugIn/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestActionPlugIn/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestActionPlugIn/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestContextSourcePlugIn/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestContextSourcePlugIn/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestContextSourcePlugIn/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestContextSourcePlugIn/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/TestContextSourcePlugIn/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CCFContextManager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CCFContextManager/UT_CCFContextManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CCFContextManager/UT_CCFContextManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -28,7 +28,6 @@
 #include "CFContextIndication.h"
 #include "CFContextSubscription.h"
 #include "cfcontextobjectimpl.h"
-#include "cfenvutils.h"
 
 
 // CONSTRUCTION
@@ -53,8 +52,6 @@
 // Destructor (virtual by CBase)
 UT_CCFContextManager::~UT_CCFContextManager()
     {
-    // ETrue screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -68,9 +65,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 
--- a/contextframework/cfw/tsrc/public/basic/UT_CCFEngine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CCFEngine/UT_CCFEngine.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CCFEngine/UT_CCFEngine.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -30,7 +30,6 @@
 #include "CFContextInterface.h"
 #include "CFContextSubscription.h"
 #include "CFContextIndication.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 const TInt KSecond = 1000000;
@@ -57,8 +56,6 @@
 // Destructor (virtual by CBase)
 UT_CCFEngine::~UT_CCFEngine()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -72,9 +69,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
     
     
--- a/contextframework/cfw/tsrc/public/basic/UT_CFActivatorEngine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CFActivatorEngine/UT_CFActivatorEngine.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CFActivatorEngine/UT_CFActivatorEngine.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -35,7 +35,6 @@
 #include "cfactionindicationimpl.h"
 #include "cfactionsubscriptionimpl.h"
 #include "cfscriptevent.h"
-#include "cfenvutils.h"
 #include "TestActionPluginConst.hrh"
 #include "cfactionpluginthread.h"
 
@@ -97,9 +96,6 @@
 UT_CFActivatorEngine::~UT_CFActivatorEngine()
     {
     Teardown();
-
-    // Enable screen saver again
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -112,10 +108,7 @@
     {
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();    
-
-    // Disable screen saver since it is causing false memory leaks
-    CFEnvUtils::EnableScreenSaver( EFalse );
+    CEUnitTestSuiteClass::ConstructL();
     }
 
 // METHODS
--- a/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceManager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceManager/UT_CFContextSourceManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceManager/UT_CFContextSourceManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -28,7 +28,6 @@
 //  INTERNAL INCLUDES
 #include "CFContextSourcePlugIn.h"
 #include "CFContextSourceManager.h"
-#include "cfenvutils.h"
 
 _LIT_SECURITY_POLICY_PASS( KPassSec );
 
@@ -54,8 +53,6 @@
 // Destructor (virtual by CBase)
 UT_CFContextSourceManager::~UT_CFContextSourceManager()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -69,9 +66,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceSettingsManager/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceSettingsManager/UT_CFContextSourceSettingsManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CFContextSourceSettingsManager/UT_CFContextSourceSettingsManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -29,7 +29,6 @@
 #include "cfcontextsourcesettingparameterimpl.h"
 #include "cfcontextsourcesettingsmanagerimpl.h"
 #include "cfcontextsourcesettingarrayimpl.h"
-#include "cfenvutils.h"
 
 // Cleans up RKeyValueArray instance
 LOCAL_C void CleanupKeyValueArray( TAny* aArray )
@@ -67,9 +66,6 @@
 UT_CFContextSourceSettingsManager::~UT_CFContextSourceSettingsManager()
     {
     Teardown();
-
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -83,9 +79,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/UT_CFOperationPluginManager/UT_CFOperationPluginManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/UT_CFOperationPluginManager/UT_CFOperationPluginManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,7 +26,6 @@
 
 //  INTERNAL INCLUDES
 #include "cfoperationpluginmanager.h"
-#include "cfenvutils.h"
 
 // CONSTRUCTION
 UT_CFOperationPluginManager* UT_CFOperationPluginManager::NewL()
@@ -50,8 +49,6 @@
 // Destructor (virtual by CBase)
 UT_CFOperationPluginManager::~UT_CFOperationPluginManager()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -65,9 +62,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-    
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/UT_CFOperationPluginManager/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/common/cfenvutils.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2008-2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CFEnvUtils class implamentation.
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <eunitmacros.h>
-#include <e32property.h>
-#include <ScreenSaverInternalPSKeys.h>
-
-// USER INCLUDES
-#include "cfenvutils.h"
-
-const TInt KScreenSaverNotAllowed = 666;
-const TInt KScreenSaverAllowed = 0;
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------------------------
-//
-CFEnvUtils::CFEnvUtils ( )
-    {
-
-    }
-
-//------------------------------------------------------------------------------
-// CFEnvUtils::EnableScreenSaver
-//------------------------------------------------------------------------------
-//
-TInt CFEnvUtils::EnableScreenSaver( TBool& aWasEnabled, const TBool aEnable )
-    {
-    TInt err( KErrNone );
-    TInt val( KScreenSaverNotAllowed );
-    
-    err = RProperty::Get( KPSUidScreenSaver,  KScreenSaverAllowScreenSaver, val );
-    EUNIT_PRINT( _L("Get screen saver mode: %d"), err );
-    if( err == KErrNone )
-        {
-        aWasEnabled = ( val != KScreenSaverAllowed );
-        err = EnableScreenSaver( aEnable );
-        }
-    
-    return err;
-    }
-
-//------------------------------------------------------------------------------
-// CFEnvUtils::EnableScreenSaver
-//------------------------------------------------------------------------------
-//
-TInt CFEnvUtils::EnableScreenSaver( const TBool aEnable )
-    {
-    TInt err( KErrNone );
-
-    TInt val = 0;
-    if( aEnable )
-        {
-        val = KScreenSaverAllowed;
-        }
-    else
-        {
-        val = KScreenSaverNotAllowed;
-        }
-    err = RProperty::Set( KPSUidScreenSaver,  KScreenSaverAllowScreenSaver, val );
-    EUNIT_PRINT( _L("Set screen saver mode: %d"), err );
-    
-    User::ResetInactivityTime();
-    
-    return err;
-    }
-
-// End of file
--- a/contextframework/cfw/tsrc/public/basic/common/cfenvutils.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2008-2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Environment utils.
-*
-*/
-
-
-#ifndef CFENVUTILS_H
-#define CFENVUTILS_H
-
-// SYSTEM INCLUDE FILES
-#include <e32std.h>
-
-// USER INCLUDE FILES
-
-// FORWARD DECLARATIONS
-
-// DATA TYPES
-
-// CLASS DECLARATION
-
-/**
- * Context FW environment utils.
- *
- * @lib None.
- * @since S60 5.1
- */
-class CFEnvUtils
-    {
-public:
-
-    /**
-     * Enables / disbales screen saver.
-     * @param aWasEnabled Returns the current value of screen saver.
-     * @param aEnable Enable screen saver.
-     * @return TInt KErrNone if no errors.
-     */
-    static TInt EnableScreenSaver( TBool& aWasEnabled, const TBool aEnable );
-    
-    /**
-     * Enables / disbales screen saver.
-     * @param aEnable Enable screen saver.
-     * @return TInt KErrNone if no errors.
-     */
-    static TInt EnableScreenSaver( const TBool aEnable );
-
-private:
-
-    /**
-     * C++ constructor.
-     */
-    CFEnvUtils();
-
-private:
-    // data
-    };
-
-#endif // CFENVUTILS_H
--- a/contextframework/cfw/tsrc/public/basic/common/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/data/testscripts/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/data/testsettings/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/data/testsettings/settingupgrade/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/group/MT_CFClient.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/MT_CFClient.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -33,7 +33,6 @@
 
 SOURCEPATH              ../common
 SOURCE                  cftestdelay.cpp
-SOURCE			cfenvutils.cpp
 
 USERINCLUDE           ../MT_CFClient
 USERINCLUDE           ../common
--- a/contextframework/cfw/tsrc/public/basic/group/MT_CFContextSourceManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/MT_CFContextSourceManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -30,8 +30,6 @@
 SOURCE                  MT_CFContextSourceManagerDllMain.cpp
 SOURCE                  MT_CFContextSourceManager.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
 
 USERINCLUDE           ../common
 USERINCLUDE           ../MT_CFContextSourceManager
--- a/contextframework/cfw/tsrc/public/basic/group/MT_CFContextSourceSettingsManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/MT_CFContextSourceSettingsManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -30,9 +30,6 @@
 SOURCE                  MT_CFContextSourceSettingsManagerDllMain.cpp
 SOURCE                  MT_CFContextSourceSettingsManager.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 USERINCLUDE           ../common
 USERINCLUDE           ../MT_CFContextSourceSettingsManager
 USERINCLUDE           ../../../../inc/CFContextSourceSettingsManager
--- a/contextframework/cfw/tsrc/public/basic/group/MT_CFOperationPluginManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/MT_CFOperationPluginManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -29,9 +29,6 @@
 SOURCE                  MT_CFOperationPluginManager.cpp
 SOURCE                  MT_CFOperationPluginManager_DllMain.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 USERINCLUDE           ../MT_CFOperationPluginManager
 USERINCLUDE           ../common
 USERINCLUDE           ../../../../inc/common
--- a/contextframework/cfw/tsrc/public/basic/group/MT_CFScriptEngine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/MT_CFScriptEngine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -34,7 +34,6 @@
 SOURCE                  cffakeenv.cpp
 SOURCE                  CFTestDelay.cpp
 SOURCE                  ScriptEventNotifierSession.cpp
-SOURCE			cfenvutils.cpp
 
 // Sources needed by the test
 SOURCEPATH              ../../../../src/cfserver
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CCFContextManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CCFContextManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -36,9 +36,6 @@
 SOURCE                  CFUtils.cpp
 SOURCE                  CFCacheElement.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 USERINCLUDE             ../../../../inc/cfserver
 USERINCLUDE             ../../../../inc/cfservices
 USERINCLUDE             ../../../../inc/common
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CCFEngine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CCFEngine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -31,7 +31,6 @@
 SOURCE					cftestcontextlistener.cpp
  
 SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
 SOURCE			cftestdelay.cpp
 
 // Sources needed by the test
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CFActivatorEngine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CFActivatorEngine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -30,9 +30,6 @@
 SOURCE                  UT_CFActivatorEngineDllMain.cpp
 SOURCE                  UT_CFActivatorEngine.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 // Sources needed by the test
 SOURCEPATH              ../../../../src/cfactivatorengine
 SOURCE                  CFActivatorEngineActionPluginManager.cpp
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CFContextSourceManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CFContextSourceManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -30,9 +30,6 @@
 SOURCE                  UT_CFContextSourceManagerDllMain.cpp
 SOURCE                  UT_CFContextSourceManager.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 // Sources needed by the test
 SOURCEPATH              ../../../../src/cfcontextsourcemanager
 SOURCE                  CFContextSourceManager.cpp
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CFContextSourceSettingsManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CFContextSourceSettingsManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -29,9 +29,6 @@
 SOURCEPATH              ../UT_CFContextSourceSettingsManager
 SOURCE                  UT_CFContextSourceSettingsManagerDllMain.cpp
 SOURCE                  UT_CFContextSourceSettingsManager.cpp
- 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
 
 // Sources needed by the test
 SOURCEPATH              ../../../../src/CFContextSourceSettingsManager
--- a/contextframework/cfw/tsrc/public/basic/group/UT_CFOperationPluginManager.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/UT_CFOperationPluginManager.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -29,9 +29,6 @@
 SOURCE                  UT_CFOperationPluginManager.cpp
 SOURCE                  UT_CFOperationPluginManager_DllMain.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 // Sources required by the test suite
 SOURCEPATH              ../../../../src/cfoperationpluginservices
 SOURCE                  cfoperationpluginmanager.cpp
--- a/contextframework/cfw/tsrc/public/basic/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/group/mt_basicoperationsplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/mt_basicoperationsplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -33,7 +33,6 @@
 SOURCE			cffakeenv.cpp
 SOURCE			CFTestDelay.cpp
 SOURCE			ScriptEventNotifierSession.cpp
-SOURCE			cfenvutils.cpp
 
 // Sources needed by the test
 SOURCEPATH              ../../../../../cfw/src/cfserver
--- a/contextframework/cfw/tsrc/public/basic/group/mt_cfactionplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/mt_cfactionplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -29,9 +29,6 @@
 SOURCE                  MT_CFActionPlugIn.cpp
 SOURCE                  MT_CFActionPlugIn_DllMain.cpp
 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
-
 USERINCLUDE             ../mt_cfactionplugin
 USERINCLUDE             ../common
 
--- a/contextframework/cfw/tsrc/public/basic/group/mt_cfservices.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/mt_cfservices.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -29,9 +29,6 @@
 SOURCEPATH              ../mt_cfservices
 SOURCE                  mt_cfservicesdllmain.cpp
 SOURCE                  mt_cfservices.cpp
- 
-SOURCEPATH		../common
-SOURCE			cfenvutils.cpp
 
 USERINCLUDE             ../../../../inc/cfservices
 USERINCLUDE             ../../../../inc/cfserver
--- a/contextframework/cfw/tsrc/public/basic/group/mt_cfsisupgrade.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/group/mt_cfsisupgrade.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -30,7 +30,6 @@
 
 SOURCEPATH		../common
 SOURCE			cftestdelay.cpp
-SOURCE			cfenvutils.cpp
 
 // Sources required by the test suite
 SOURCEPATH              ../mt_cfsisupgrade
--- a/contextframework/cfw/tsrc/public/basic/mt_cfactionplugin/MT_CFActionPlugIn.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/mt_cfactionplugin/MT_CFActionPlugIn.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -27,7 +27,6 @@
 //  INTERNAL INCLUDES
 #include <CFActionPlugin.h>
 #include <cfactionindication.h>
-#include "cfenvutils.h"
 
 // CONSTANTS
 const TUid KTestActionPluginImplementationUid = {0x10002003};
@@ -121,8 +120,6 @@
 // Destructor (virtual by CBase)
 MT_CCFActionPlugIn::~MT_CCFActionPlugIn()
     {
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -136,9 +133,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/mt_cfactionplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfservices/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfservices/mt_cfservices.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/mt_cfservices/mt_cfservices.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004 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"
@@ -33,7 +33,6 @@
 #include "CFKeyValuePair.h"
 #include "cfserviceutils.h"
 #include "cfcontextdataproxy.h"
-#include "cfenvutils.h"
 
 // CONSTANTS
 _LIT( KKey, "Key_%d" );
@@ -73,9 +72,6 @@
 MT_CFServices::~MT_CFServices()
     {
     Teardown();
-
-    // Enable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -89,9 +85,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 // METHODS
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/MT_CFSisUpgrade.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/MT_CFSisUpgrade.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -42,7 +42,6 @@
 #include "actiondef_v1.h"
 #include "actiondef_v2.h"
 #include "operation_v1.hrh"
-#include "cfenvutils.h"
 
 // CONSTANTS
 const TInt KSecond = 1000000;
@@ -69,8 +68,6 @@
 // Destructor (virtual by CBase)
 MT_CFSisUpgrade::~MT_CFSisUpgrade()
     {
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( ETrue );
     }
 
 // Default constructor
@@ -84,9 +81,6 @@
     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
     // It generates the test case table.
     CEUnitTestSuiteClass::ConstructL();
-
-    // Disable screen saver
-    CFEnvUtils::EnableScreenSaver( EFalse );
     }
 
 //  METHODS
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/action_v1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/action_v2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/contextsource_v1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/contextsource_v2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/operation_v1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/operation_v2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/mt_cfsisupgrade/operation_v3/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/basic/sis/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfw/tsrc/public/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/ApplicationStateSourcePlugIn.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/ApplicationStateSourcePlugIn.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/ApplicationStateSourcePluginConst.hrh"
 
-TARGET          ApplicationStateSourcePlugIn.dll
+TARGET          applicationstatesourceplugin.dll
 TARGETTYPE      PLUGIN
 UID             0x10009D8D KApplicationStateSourcePluginDllUid
 CAPABILITY      CAP_ECOM_PLUGIN
@@ -39,7 +39,7 @@
 
 SOURCEPATH      ../data
 START RESOURCE  ApplicationStateSourcePlugIn.rss
-TARGET          ApplicationStateSourcePlugIn.rsc
+TARGET          applicationstatesourceplugin.rsc
 TARGETPATH      /resource/plugins
 END
 
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -10,12 +10,17 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
+* 
 *
 * Description:
 *
 */
 
 
+/*
+*NTT DOCOMO, INC - BUG 2365
+*/
+
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
@@ -28,25 +33,19 @@
 ../rom/applicationstatesourcepluginhw.iby CORE_MW_LAYER_IBY_EXPORT_PATH(ApplicationStateSourcePlugInHW.iby)
 
 // Rule files
-../data/autorotateui_activate.xml\
-    /epoc32/release/winscw/udeb/z/private/10282bc4/rules/autorotateui_activate.rul
-../data/autorotateui_activate.xml\
-    /epoc32/data/z/private/10282bc4/rules/autorotateui_activate.rul
+/*
+Copy autorotateui_activate.xml, autorotateui_alwaysinportrait.xml, autorotateui_init.xml, autorotateui_rotate.xml to 
+1. /epoc32/data/z/private/10282BC4/rules/
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/rules/
+3. /epoc32/release/winscw/urel/z/private/10282BC4/rules/
+*/
+../data/autorotateui_activate.xml Z:/private/10282bc4/rules/autorotateui_activate.rul
     
-../data/autorotateui_alwaysinportrait.xml\
-    /epoc32/release/winscw/udeb/z/private/10282bc4/rules/autorotateui_alwaysinportrait.rul
-../data/autorotateui_alwaysinportrait.xml\
-    /epoc32/data/z/private/10282bc4/rules/autorotateui_alwaysinportrait.rul
+../data/autorotateui_alwaysinportrait.xml Z:/private/10282bc4/rules/autorotateui_alwaysinportrait.rul
 
-../data/autorotateui_init.xml\
-    /epoc32/release/winscw/udeb/z/private/10282bc4/rules/autorotateui_init.rul
-../data/autorotateui_init.xml\
-    /epoc32/data/z/private/10282bc4/rules/autorotateui_init.rul
+../data/autorotateui_init.xml Z:/private/10282bc4/rules/autorotateui_init.rul
 
-../data/autorotateui_rotate.xml\
-    /epoc32/release/winscw/udeb/z/private/10282bc4/rules/autorotateui_rotate.rul
-../data/autorotateui_rotate.xml\
-    /epoc32/data/z/private/10282bc4/rules/autorotateui_rotate.rul
+../data/autorotateui_rotate.xml Z:/private/10282bc4/rules/autorotateui_rotate.rul
 
 #endif // RD_CONTEXT_FRAMEWORK
 
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/ApplicationStateSourcePlugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/ApplicationStateSourcePlugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -29,14 +29,30 @@
 #include <cfcontextsourceplugin.h>
 #include <cfcontextobject.h>
 #include <cenrepnotifyhandler.h>
-
+#include <w32std.h>
+#include <apgwgnam.h>
 #include "cfapplicationstatesettings.h"
 #include "uidorientationpair.h"
 
 // FORWARD DECLARATIONS
 class CRepository;
 class CCenRepNotifyHandler;
+// FORWARD DECLARATIONS
+class CWsEventHandler;
 
+NONSHARABLE_CLASS( MWsEventObserver )
+    {
+public:
+
+    /**
+     * Handles window server event.
+     * 
+     * @since S60 5.0
+     * @param aEvent New window server event.
+     * @return None.
+     */
+    virtual void HandleWsEventL( RWsSession& aWsSession ) = 0;    
+    };
 // CLASS DECLARATION
 
 /**
@@ -50,7 +66,7 @@
  */
 NONSHARABLE_CLASS( CApplicationStateSourcePlugIn ): 
 	public CCFContextSourcePlugIn,
-	public MVwsSessionWrapperObserver,
+	public MWsEventObserver,
 	public MCenRepNotifyHandlerCallback
     {
 public: // Constructors and destructor
@@ -75,10 +91,7 @@
     // @see CCFContextSourcePlugIn
     void InitializeL();
 
-public: // From MVwsSessionWrapperObserver
 
-    // @see MVwsSessionWrapperObserver
-    void HandleViewEventL( const TVwsViewEvent& aEvent );
 
 public: // From MCenRepNotifyHandlerCallback
 
@@ -110,7 +123,7 @@
     
     // Initialize the fg application context
     void InitializeFgApplicationL();
-    
+    void HandleWsEventL( RWsSession& aWsSession );
     // Handles the view server event
     void DoHandleViewEventL( const TVwsViewEvent& aEvent );
     
@@ -148,6 +161,7 @@
 
     // Foreground application setting list
     RApplicationStateSettingsPointerArray iApplicationSettings;
+    CWsEventHandler* iWsEventHandler;
     
     // Previous foreground application orientation
     TPtrC iPreviousOrientation;
@@ -164,5 +178,67 @@
     // KCRUidDefaultAppOrientation listener
     CCenRepNotifyHandler* iCRAppOrientationListener;
     };
+/**
+ * Listens events from window server and forwards them to observer.
+ */
+NONSHARABLE_CLASS( CWsEventHandler ): public CActive
+    {
+public:
 
+    /**
+     * Symbian two phased constructors.
+     *
+     * @since S60 5.0
+     * @param None.
+     * @return CDisplayServiceUILayout
+     */
+    static CWsEventHandler* NewL( MWsEventObserver& aObserver );
+    static CWsEventHandler* NewLC( MWsEventObserver& aObserver );
+
+    /**
+     * C++ destructor.
+     */
+    virtual ~CWsEventHandler();
+    
+public:
+    
+    /**
+     * Start event listening.
+     * 
+     * @since S60 5.0
+     * @param None.
+     * @return None.
+     */
+    void IssueRequest();
+    
+protected:
+    
+    // @see CActive
+    virtual void RunL();
+    
+    // @see CActive
+    virtual void DoCancel(); 
+    
+    // @see CActive
+    virtual TInt RunError( TInt aError ); 
+    
+private:
+
+    CWsEventHandler( MWsEventObserver& aObserver );
+    void ConstructL();
+
+private: // Data
+    
+    /** Observer */
+    MWsEventObserver& iObserver;
+
+    /** Window server session */
+    RWsSession iWsSession;
+    
+    /** Window group for receiving window server events */
+    RWindowGroup* iWindowGroup;
+    
+    /** Window group name to hide it from the task manager */
+    CApaWindowGroupName* iWindowGroupName;
+    };
 #endif // C_APPLICATIONSTATESOURCEPLUGIN_H
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/ApplicationStateSourcePlugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/ApplicationStateSourcePlugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -26,10 +26,10 @@
 #include <apgwgnam.h>
 #include <applicationorientation.h>
 #include <aknappui.h>
+#include <coedef.h>
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <vwsdefpartner.h>
 #endif
-
 #include "ApplicationStateSourcePlugin.h"
 #include "ApplicationStateSourceContextDef.h"
 #include "ContextFrameworkPrivateCRKeys.h"
@@ -82,6 +82,8 @@
     iDefaultAppName = KApplicationStateDefaultValue().AllocL();
     iDefaultViewName = KApplicationStateDefaultValue().AllocL();
     iContext = CCFContextObject::NewL();
+    iWsEventHandler = CWsEventHandler::NewL( *this );
+    iWsEventHandler->IssueRequest();
     }
 
 // -----------------------------------------------------------------------------
@@ -131,7 +133,7 @@
     delete iCRAppOrientation;
     iApplicationSettings.ResetAndDestroy();
     delete iSettings;
-    delete iVws;
+    
     delete iDefaultViewName;
     delete iDefaultAppName;
     delete iApplDefaultState;
@@ -223,8 +225,7 @@
         iSettings = NULL;
         }
 
-    iVws = CVwsSessionWrapper::NewL( *this );
-    iVws->NotifyNextActivation();
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -351,33 +352,7 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// CApplicationStateSourcePlugIn::HandleViewEventL
-// Maps view activations to contexts.
-// -----------------------------------------------------------------------------
-//
-void CApplicationStateSourcePlugIn::HandleViewEventL(
-    const TVwsViewEvent& aEvent )
-    {
-    FUNC_LOG;
 
-    // Renew listening
-    iVws->NotifyNextActivation();
-
-    // Handle the view server event
-    DoHandleViewEventL( aEvent );
-
-    // Log event members!
-    INFO_1( "HandleViewEventL: eventType: [%d]", aEvent.iEventType );
-    
-    INFO_2( "HandleViewEventL: viewOne [appUid:%S] [viewUid%S]",
-        &(const TDesC&)aEvent.iViewOneId.iAppUid.Name(),
-        &(const TDesC&)aEvent.iViewOneId.iViewUid.Name() );
-    
-    INFO_2( "HandleViewEventL: viewTwo [appUid:%S] [viewUid%S]",
-        &(const TDesC&)aEvent.iViewTwoId.iAppUid.Name(),
-        &(const TDesC&)aEvent.iViewTwoId.iViewUid.Name() );
-    }
 
 //------------------------------------------------------------------------------
 // CApplicationStateSourcePlugIn::HandleNotifyGeneric
@@ -745,3 +720,223 @@
         }
     return index;
     }
+void CApplicationStateSourcePlugIn::HandleWsEventL( RWsSession& aWsSession )
+	{
+	TUid appUid( TUid::Null() );
+    TPtrC bgApp( *iDefaultAppName );
+    TPtrC fgApp( *iDefaultAppName );
+    TPtrC fgView( *iDefaultViewName );
+
+	TInt focWndGrp( aWsSession.GetFocusWindowGroup() );
+    CApaWindowGroupName* wndGrpName = CApaWindowGroupName::NewL( aWsSession );
+    CleanupStack::PushL( wndGrpName );
+    wndGrpName->ConstructFromWgIdL( focWndGrp );
+    appUid = wndGrpName->AppUid();
+
+    for ( TInt i = 0; i < iApplicationSettings.Count(); ++i )
+        {
+        CCFApplicationStateSettings* appSettings = iApplicationSettings[ i ];
+        if ( appUid == appSettings->Uid() )
+            {
+            fgApp.Set( appSettings->Name() );
+            appSettings->GetViewName( appUid, fgView );
+            bgApp.Set( iPreviousForegroundApplication );
+            break;
+            }
+        }
+    TBool publishFgApp( EFalse );
+    TBool publishFgView( EFalse );
+    TBool publishBgApp( EFalse );
+
+    if ( iPreviousForegroundApplication.Compare( fgApp ) != 0 )
+        {
+        publishFgApp = ETrue;
+        }
+    else if ( iPreviousForegroundView.Compare( fgView ) != 0 )
+        {
+        publishFgView = ETrue;
+        }
+
+    if ( bgApp != fgApp )
+        {
+        publishBgApp = ETrue;
+        }
+
+    iPreviousForegroundApplication.Set( fgApp ); // Store for next round
+    iPreviousForegroundView.Set( fgView );
+
+   RThread thread;
+
+    if ( publishFgApp )
+        {
+        iContext->SetTypeL( KApplicationStateForegroundApplicationType );
+        iContext->SetValueL( fgApp );
+        iCF.PublishContext( *iContext, thread );
+        }
+
+    if ( publishFgApp || publishFgView )
+        {
+        iContext->SetTypeL( KApplicationStateForegroundApplicationViewType );
+        iContext->SetValueL( fgView );
+        iCF.PublishContext( *iContext, thread );
+        }
+
+    if ( publishBgApp )
+        {
+        iContext->SetTypeL( KApplicationStateBackgroundApplicationType );
+        iContext->SetValueL( bgApp );
+        iCF.PublishContext( *iContext, thread );
+        }
+	
+	thread.Close();
+    CleanupStack::PopAndDestroy( wndGrpName );
+
+	}
+
+// ======================== CWsEventHandler ========================
+
+// ---------------------------------------------------------------------------
+// C++ constructor.
+// ---------------------------------------------------------------------------
+//
+CWsEventHandler::CWsEventHandler( MWsEventObserver& aObserver ):
+    CActive( CActive::EPriorityStandard ),
+    iObserver( aObserver )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor.
+// ---------------------------------------------------------------------------
+//
+void CWsEventHandler::ConstructL()
+    {
+    // Connect to window server server
+    User::LeaveIfError( iWsSession.Connect() );
+    
+    // Construct window group
+    iWindowGroup = new( ELeave ) RWindowGroup( iWsSession );
+    User::LeaveIfError( iWindowGroup->Construct( (TUint32)this, EFalse ) );
+    User::LeaveIfError( iWindowGroup->EnableGroupChangeEvents() );
+    iWindowGroup->SetOrdinalPosition( 0, ECoeWinPriorityNeverAtFront );
+    iWindowGroup->EnableReceiptOfFocus( EFalse );
+    
+    // Hide the invisible window from the task manager
+    iWindowGroupName = CApaWindowGroupName::NewL( iWsSession );
+    iWindowGroupName->SetHidden( ETrue );
+    iWindowGroupName->SetWindowGroupName( *iWindowGroup );
+
+    }
+// ---------------------------------------------------------------------------
+// Symbian two phased constructor.
+// ---------------------------------------------------------------------------
+//
+CWsEventHandler* CWsEventHandler::NewL( MWsEventObserver& aObserver )
+    {
+    CWsEventHandler* self = CWsEventHandler::NewLC( aObserver );
+    CleanupStack::Pop( self );
+    
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian two phased constructor.
+// Leaves pointer in the cleanup stack.
+// ---------------------------------------------------------------------------
+//
+CWsEventHandler* CWsEventHandler::NewLC( MWsEventObserver& aObserver )
+    {
+    CWsEventHandler* self = new ( ELeave ) CWsEventHandler( aObserver );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// C++ destructor.
+// ---------------------------------------------------------------------------
+//
+CWsEventHandler::~CWsEventHandler()
+    {
+    Cancel();
+        
+    // Cleanup window group name
+    delete iWindowGroupName;
+       
+    // Cleanup window group
+    if( iWindowGroup )
+        {
+        iWindowGroup->DisableGroupChangeEvents();
+        iWindowGroup->Close();
+        delete iWindowGroup;
+        }
+    
+    // Cleanup window server session
+    iWsSession.Close();
+    }
+
+//------------------------------------------------------------------------------
+// CWsEventHandler::IssueRequest
+//------------------------------------------------------------------------------
+//
+void CWsEventHandler::IssueRequest()
+    {
+    // Request events from window server
+    iWsSession.EventReady( &iStatus );
+    SetActive();
+    }
+
+
+//------------------------------------------------------------------------------
+// CWsEventHandler::RunL
+//------------------------------------------------------------------------------
+//
+void CWsEventHandler::RunL()
+    {
+    TInt err = iStatus.Int();
+    if( err == KErrNone )
+        {
+        // No errors occured, fetch event
+        TWsEvent wsEvent;
+        iWsSession.GetEvent( wsEvent );
+        
+        // Continue listening
+        IssueRequest();
+		switch (wsEvent.Type()) 
+			{
+		case EEventWindowGroupsChanged :
+	       // Forward event to observer
+	       iObserver.HandleWsEventL( iWsSession );
+			break;
+		default:
+			break;
+			}
+        }
+    }
+
+//------------------------------------------------------------------------------
+// CWsEventHandler::DoCancel
+//------------------------------------------------------------------------------
+//
+void CWsEventHandler::DoCancel()
+    {
+    // Cancel event ready from window server
+    iWsSession.EventReadyCancel();
+    }
+
+//------------------------------------------------------------------------------
+// CWsEventHandler::RunError
+//------------------------------------------------------------------------------
+//
+TInt CWsEventHandler::RunError( TInt /*aError*/ )
+    {
+    // Issue a new request, other error handling is not performed since the
+    // problem has occured in the observer code
+    IssueRequest();
+    
+    return KErrNone;
+    }
+
+	
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/context/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/group/CallStateSourcePlugIn.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/CallStateSourcePlugIn/group/CallStateSourcePlugIn.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/CallStateSourcePlugInConst.hrh"
 
-TARGET          CallStateSourcePlugIn.dll
+TARGET          callstatesourceplugin.dll
 TARGETTYPE      PLUGIN
 UID             0x10009D8D KCallStateSourcePluginDllUid
 CAPABILITY      ALL -TCB
@@ -36,7 +36,7 @@
 
 SOURCEPATH      ../data
 START RESOURCE	CallStateSourcePlugIn.rss
-TARGET 		    CallStateSourcePlugIn.rsc
+TARGET 		    callstatesourceplugin.rsc
 TARGETPATH 	    /resource/plugins
 END
 
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/CallStateSourcePlugIn/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/context/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/PSStateSourcePlugIn/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-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"
@@ -10,24 +10,31 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
-*
+* 
+* 
 * Description:  Build information file for project PSStateSourcePlugIn
 *
 */
 
 
+/*
+*NTT DOCOMO, INC - BUG 2365
+*/
+
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
 DEFAULT
 
 PRJ_EXPORTS
-	
-../data/10282C74.xml\
-    /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Settings/10282C74/10282C74.xml
 
-../data/10282C74.xml\
-    /epoc32/data/Z/private/10282BC4/Settings/10282C74/10282C74.xml
+/*
+Copy 10282C74.xml to 
+1. /epoc32/data/z/private/10282BC4/Settings/10282C74/10282C74.xml
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/Settings/10282C74/10282C74.xml
+3. /epoc32/release/winscw/urel/z/private/10282BC4/Settings/10282C74/10282C74.xml
+*/
+../data/10282C74.xml	Z:/private/10282BC4/Settings/10282C74/10282C74.xml
     
 ../rom/psstatesourceplugin.iby     CORE_MW_LAYER_IBY_EXPORT_PATH(psstatesourceplugin.iby)
     
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/group/psstatesourceplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/PSStateSourcePlugIn/group/psstatesourceplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include "../inc/psstatesourcepluginconst.hrh"
 
-TARGET          PSStateSourcePlugIn.dll
+TARGET          psstatesourceplugin.dll
 TARGETTYPE      PLUGIN
 UID             0x10009D8D KPSStateSourcePluginDllUid
 CAPABILITY      ALL -TCB
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/cenrepsourceplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/displaysourceplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,7 +23,7 @@
 #include "../ApplicationStateSourcePlugIn/group/bld.inf"
 #include "../sensorsourceplugin/group/bld.inf"
 #include "../vibraactionplugin/group/bld.inf"
-#include "../orientationactionplugin/group/bld.inf"
+//#include "../orientationactionplugin/group/bld.inf"
 #include "../cenrepsourceplugin/group/bld.inf"
 // moved from pcfw
 #include "../PSStateSourcePlugIn/group/bld.inf"
--- a/contextframework/cfwplugins/orientationactionplugin/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/orientationactionplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/orientationactionplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/orientationactionplugin/group/orientationactionplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/orientationactionplugin/group/orientationactionplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #include "../inc/traceconfiguration.hrh"
 #include "../inc/orientationactionpluginconst.hrh"
 
-TARGET          OrientationActionPlugin.dll
+TARGET          orientationactionplugin.dll
 TARGETTYPE      PLUGIN
 UID             0x10009D8D KOrientationActionPlugInDllUid
 CAPABILITY      CAP_ECOM_PLUGIN
@@ -50,7 +50,7 @@
 LIBRARY         cfactivatorengine.lib
 LIBRARY         cfservices.lib
 LIBRARY         centralrepository.lib
-LIBRARY         Avkon.lib
+LIBRARY         avkon.lib
 LIBRARY         apgrfx.lib
 #ifdef TRACE_INTO_FILE
 LIBRARY         flogger.lib
--- a/contextframework/cfwplugins/orientationactionplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/orientationactionplugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/orientationactionplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/context/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/contextframework/cfwplugins/sensorsourceplugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-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"
@@ -10,11 +10,15 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
+* 
 *
 * Description:  Build information file for project SensorSourcePlugin
 *
 */
 
+/*
+*NTT DOCOMO, INC - BUG 2365
+*/
 
 #include <platform_paths.hrh>
 
@@ -26,11 +30,14 @@
 #ifdef RD_CONTEXT_FRAMEWORK
 ../rom/sensorsourceplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(SensorSourcePlugin.iby)
 
-../data/10282DF0.xml\
-    /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+/*
+Copy 10282DF0.xml to 
+1. /epoc32/data/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+3. /epoc32/release/winscw/urel/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+*/
+../data/10282DF0.xml	Z:/private/10282BC4/Settings/10282DF0/10282DF0.xml
 
-../data/10282DF0.xml\
-    /epoc32/data/Z/private/10282BC4/Settings/10282DF0/10282DF0.xml
 #endif // RD_CONTEXT_FRAMEWORK
 
 PRJ_MMPFILES
--- a/contextframework/cfwplugins/sensorsourceplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/sensorsourceplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/cfwplugins/vibraactionplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/contextframework/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/data/2001A273.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+
+
+ // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ // All rights reserved.
+ // This component and the accompanying materials are made available
+ // under the terms of "Eclipse Public License v1.0"
+ // which accompanies this distribution, and is available
+ // at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ // Initial Contributors:
+ // Nokia Corporation - initial contribution.
+ // Contributors:
+ // Description:
+ // ECOM DLL UID:        0x2001A273
+ // Interface UID :      0x2001CBEE
+ // Implementation UID : 0x2001A274
+
+
+#include "../inc/atcmdpluginuids.hrh"
+#include <ecom/registryinfo.rh>
+
+
+RESOURCE REGISTRY_INFO theInfo
+	{
+	// UID for the DLL
+	dll_uid = KUidATCmdEcomDll;
+	// Declare array of interface info
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			// UID of interface that is implemented
+			interface_uid = 0x2001CBEE; //ATEXT_INTERFACE_DUN_UID
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = KUidATCmdEcomImpl1;
+					version_no = 1;
+					display_name = " CKPD command Imp";
+					default_data = "PAT+CKPD|PAT+CTSA|PAT+CBKLT";
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/data/atcmdpluginresource.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,252 @@
+
+ // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ // All rights reserved.
+ // This component and the accompanying materials are made available
+ // under the terms of "Eclipse Public License v1.0"
+ // which accompanies this distribution, and is available
+ // at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ // Initial Contributors:
+ // Nokia Corporation - initial contribution.
+ // Contributors:
+ // Description: ATCmdplugin resource definitions.
+ 
+//  RESOURCE IDENTIFIER
+NAME    ATCD
+
+#include <eikon.rh>
+#include <e32keys.h>
+#include <ncp_consts.hrh>
+#include "atcmdplugin.rh"
+
+
+//  CONSTANTS
+
+//  MACROS  
+
+//  RESOURCE DEFINITIONS 
+
+//-----------------------------------------------------------------------------
+//   
+//    -
+//    Resource signature
+//
+//-----------------------------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE {}
+
+//-----------------------------------------------------------------------------
+//   
+//    -
+//    Resource filename
+//
+//-----------------------------------------------------------------------------
+//
+RESOURCE TBUF 
+    { 
+    buf = "atcmdpluginresource"; 
+    }
+
+
+
+// -----------------------------------------------------------------------------
+//
+//    r_atcmdplugin_translationtable
+//    Translation table
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE ARRAY r_atcmdplugin_translationtable
+    {    
+    items =
+        {
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyHash;
+            text = "#";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '%';
+            text = "%";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyNkpAsterisk;
+            text = "*";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '0';
+            text = "0";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '1';
+            text = "1";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '2';
+            text = "2";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '3';
+            text = "3";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '4';
+            text = "4";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '5';
+            text = "5";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '6';
+            text = "6";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '7';
+            text = "7";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '8';
+            text = "8";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = '9';
+            text = "9";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyLeftArrow;
+            text = "<";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyRightArrow;
+            text = ">";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EKeyNull;
+            text = "\"";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EKeyNull;
+            text = ";";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            // Escape character for manufacturer specific keys
+            code = -1;
+            text = ":";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = 'P';
+            text = "w";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDevice0; // left SK
+            text = "[";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDevice1; // right SK
+            text = "]";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyIncVolume;
+            text = "u";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDecVolume;
+            text = "d";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyNo;
+            text = "c";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyYes;
+            text = "s";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyNo;
+            text = "e";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDownArrow;
+            text = "v";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyUpArrow;
+            text = "^";
+            },            
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyApplication0; // menu
+            text = "m";
+            }, 
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDevice2; // power
+            text = "p";
+            },             
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = BSW_EStdProductKey09; // mute
+            text = "q";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyNkpPlus;
+            text = ":+";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyBackspace;
+            text = "y";
+            },
+       ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDevice1;
+            text = "y]";
+            },
+       ATCMDPLUGIN_TRANSLATION
+            {
+            code = EStdKeyDevice3;
+            text = ":J";
+            },
+       ATCMDPLUGIN_TRANSLATION
+            {
+            code = EKeyNull;
+            text = "\n";
+            },
+        ATCMDPLUGIN_TRANSLATION
+            {
+            code = EKeyNull;
+            text = "\r";
+            }
+        };
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/group/atcmdplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,66 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :
+ *
+ */
+
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+#include "../inc/atcmdpluginuids.hrh"
+
+CAPABILITY 	    CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+TARGET          atcmdplugin.dll
+TARGETTYPE	    PLUGIN
+UID             0x10009D8D KUidATCmdEcomDll
+
+SOURCEPATH      ../src
+SOURCE          main.cpp
+SOURCE          atcmdplugin.cpp
+SOURCE          atcmd.cpp
+
+USERINCLUDE     ../inc
+
+MW_LAYER_SYSTEMINCLUDE
+
+START RESOURCE  ../data/2001A273.rss
+TARGET          atcmdplugin.rsc
+END
+
+//not actually localized
+//LANG	          SC
+
+START RESOURCE  ../data/atcmdpluginresource.rss
+HEADER
+TARGETPATH      APP_RESOURCE_DIR
+END  // RESOURCE
+
+LIBRARY 		apgrfx.lib
+LIBRARY			cone.lib
+LIBRARY	        ecom.lib
+LIBRARY			eikcore.lib
+LIBRARY         euser.lib
+LIBRARY         atextpluginbase.lib
+LIBRARY         bafl.lib
+LIBRARY	        efsrv.lib
+LIBRARY         ws32.lib
+LIBRARY         hwrmlightclient.lib
+LIBRARY         hal.lib
+
+DEBUGLIBRARY    flogger.lib
+
+
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,34 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :This file provides the information required for building the
+ *              atcmdpluginecom.dll
+ *
+ */
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+
+PRJ_EXPORTS
+../rom/atcmdplugin.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(atcmdplugin.iby)
+
+PRJ_TESTEXPORTS
+
+PRJ_MMPFILES
+atcmdplugin.mmp
+
+PRJ_TESTMMPFILES
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/atcmd.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,56 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :
+ *
+ */
+
+
+#ifndef __ATCMD_H
+#define __ATCMD_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+class TATCkpdCmd
+  	{
+    public:
+        inline TATCkpdCmd() {}
+    public:
+        TInt iCode;
+        TTimeIntervalMicroSeconds32 iStrokeDelay;
+        TTimeIntervalMicroSeconds32 iStrokeTime;
+    };
+
+class CATCmdTranslation
+    : public CBase
+    {
+    public:
+        CATCmdTranslation( HBufC8& aParam, const TInt aCode );
+        ~CATCmdTranslation();
+    public:
+        TInt Code() const;
+        TPtrC8 Param() const;
+    private:
+        HBufC8* iParam;
+        const TInt iCode;
+
+    };
+
+
+
+#endif // __ATCMD_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/atcmdplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,260 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description : ATCmdplugin class declaration.
+ *
+ */
+
+
+
+#ifndef __ATCMDPLUGINECOM_H
+#define __ATCMDPLUGINECOM_H
+
+// INCLUDES
+#include <atextpluginbase.h>
+#include <w32std.h>
+#include <hwrmlight.h>
+#include "matcmdtimer.h"
+#include "atcmd.h"
+
+// FORWARD DECLARATIONS
+class CCoeEnv;
+
+// CLASS DECLARATION
+
+/**
+*  CATCmdPluginEcom
+*  -
+*/
+class CATCmdPluginEcom : public CATExtPluginBase, public MATCmdTimer, public MHWRMLightObserver
+  	{
+  	public: // Constructors, destructor
+        /**
+        * Two-phased constructor.
+        */
+        static CATCmdPluginEcom* NewL();
+        
+        /**
+        * C++ Destructor.
+        */
+        ~CATCmdPluginEcom();
+        
+        /**
+         * From MHWRMLightObserver
+         */
+        void LightStatusChanged (TInt aTarget, CHWRMLight::TLightStatus aStatus);
+        
+        void HandleCommandCancel();
+        
+        void ReportConnectionName( const TDesC8& aName );
+        
+        
+        TInt NextReplyPartLength();
+
+        /**
+         * Gets the next part of reply initially set by HandleCommandComplete().
+         * Length of aNextReply must be equal or less than KDefaultCmdBufLength.
+         *
+         * @since S60 5.0
+         * @param aNextReply Next reply
+         * @return Symbian error code on error, KErrNone otherwise
+         */
+        TInt GetNextPartOfReply( RBuf8& aNextReply ) ;
+
+        /**
+         * Receives unsolicited results. Cancelling of the pending request is done
+         * by ReceiveUnsolicitedResultCancel(). The implementation in the extension
+         * plugin should be asynchronous.
+         *
+         * @since S60 5.0
+         * @return None
+         */
+        void ReceiveUnsolicitedResult();
+
+        /**
+         * Cancels a pending ReceiveUnsolicitedResult request.
+         *
+         * @since S60 5.0
+         * @return None
+         */
+        void ReceiveUnsolicitedResultCancel();
+
+        /**
+         * Reports NVRAM status change to the plugins.
+         *
+         * @since S60 5.0
+         * @param aNvram New NVRAM status. Each call of this function is a result
+         *               of DUN extracting the form notified by
+         *               CATExtCommonBase::SendNvramStatusChange(). Each of the
+         *               settings from SendNvramStatusChange() is separated to
+         *               one call of ReportNvramStatusChange().
+         * @return None
+         */
+        void ReportNvramStatusChange( const TDesC8& aNvram );
+
+        /**
+         * Reports about external handle command error condition.
+         * This is for cases when for example DUN decided the reply contained an
+         * error condition but the plugin is still handling the command internally.
+         * Example: in command line "AT+TEST;ATDT1234" was given. "AT+TEST" returns
+         * "OK" and "ATDT" returns "CONNECT". Because "OK" and "CONNECT" are
+         * different reply types the condition is "ERROR" and DUN ends processing.
+         * This solution keeps the pointer to the last AT command handling plugin
+         * inside ATEXT and calls this function there to report the error.
+         * It is to be noted that HandleCommandCancel() is not sufficient to stop
+         * the processing as the command handling has already finished.
+         *
+         * @since S60 5.0
+         * @return None
+         */
+        void ReportExternalHandleCommandError();
+
+
+        
+        enum TPluginStatus
+            {
+            ECmdCkpd,
+            ECmdCbklt,
+            EKeepAlive
+            };
+            
+        enum TLightStatus
+            {
+            ELightUninitialized = -1,
+            ELightOff = 0,
+            ELightOnWithDuration,
+            ELightOn
+            };
+
+    private: // From base classes
+
+        // @see CCFActionPlugIn
+        void HandleCommand( const TDesC8& aCmd, RBuf8& aReply, TBool aReplyNeeded );
+
+        // @see CCFActionPlugIn
+        TBool IsCommandSupported( const TDesC8& aCmd );
+
+    private: // New implementation
+
+        /**
+        * AT commands handling
+        * @param aCmd
+        * @param aReply
+        */
+        void HandleCommandL( const TDesC8& aCmd );                          
+
+
+    private: // CATCmdTimer
+		/**
+        * CATCmdTimer
+        */
+	    class CATCmdTimer
+	        : public CTimer
+		    {
+	        public: // Constructor, destructor
+		        /**
+                * Constructor
+                */
+		        CATCmdTimer( MATCmdTimer& aObserver, TInt aRelatedCommand );
+
+		        /**
+                * 2nd phase constructor
+                */
+		        void ConstructL();
+
+	        public: // from CActive
+		        /**
+                * Timer callback
+                */
+		        virtual void RunL();
+		        
+		    private: // data
+		        /** */
+		        MATCmdTimer& iObserver;
+		        TInt iRelatedCommand;
+		    };
+    
+    private: // from MATCmdTimer
+        void TimerExpiredL( TInt aRelatedCommand );
+        
+    private:
+        void LoadResourcesL();
+
+        void HandleCkpdCommandL( const TDesC8& aCmd );
+        
+        void HandleCbkltCommandL( const TDesC8& aCmd );
+        void HandleCtsaCommandL( const TDesC8& aCmd );
+
+        void ParseParametersL( const TDesC8& aCmd, 
+                               TInt& aStrokeTime, 
+                               TInt& aStrokeDelay );
+
+        void SendKeyL();
+
+        void SendNextKeyL();
+
+        void SimulateRawEventL( TKeyEvent& aKey, TEventCode aEvent  );
+        
+        void EnableBackLight();
+        
+        void DisableBackLight();
+        
+    private:
+		/**
+        * @param aCmd
+        */
+        //void ATCmdPNDRecv( CATCommand& aCmd );
+
+    private: // Constructors
+        /**
+        * C++ Constructor
+        */
+        CATCmdPluginEcom();
+
+        /**
+        * Symbian 2nd phase constructor
+        */
+        void ConstructL();
+
+    private: // Data
+        /** Owns: */
+        CArrayFix<TATCkpdCmd>* iCkpdCmdArray;
+
+        /** Owns: */
+        CATCmdTimer* iKpdTimer;
+        
+        CATCmdTimer* iBkltTimer;
+        
+        CATCmdTimer* iKeepAliveTimer;
+        
+        /** Owns: */
+        CArrayPtr<CATCmdTranslation>* iTranslations;
+
+        TEventCode iLastEvent;
+        
+        /** Owns: */
+        CHWRMLight* iLight;
+        
+        RWsSession iWsSession;
+        
+        TPluginStatus iCmdReceived;
+        
+        TLightStatus iLightStatus;
+        
+        TInt iDuration;
+        
+        RBuf8* iReplyBuf;
+    };
+
+#endif // __ATCMDPLUGINECOM_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/atcmdplugin.rh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,36 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :Resource structure definitions for ATCmdplugin
+ *
+ */
+
+#ifndef __AVKON_HRH__
+#include <avkon.hrh>
+#endif
+
+#if !defined(__BADEF_RH__)
+#include <BADEF.RH>
+#endif
+
+#if !defined(__UIKON_HRH__)
+#include <uikon.hrh>
+#endif
+
+
+STRUCT ATCMDPLUGIN_TRANSLATION
+	{
+    LONG code = 0;
+	LTEXT8 text;
+	}
+
+// End Of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/atcmdpluginuids.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description: Collection of uid's
+ *
+ */
+
+#ifndef __ATCMDPLUGINUIDS_HRH
+#define __ATCMDPLUGINUIDS_HRH
+
+
+// INCLUDES
+#define KUidATCmdEcomDll   0x2001A273
+#define KUidATCmdEcomImpl1 0x2001A274
+#define KUidT_ATCmdExe     0x2001A275
+// Reserved 0x2001A276
+
+    
+#endif // __ATCMDPLUGINUIDS_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/debug.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,227 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :tracing and debuging definitions.
+ *
+ */
+
+
+#ifndef DEBUGTRACE_H
+#define DEBUGTRACE_H
+
+#include <e32base.h>
+#include <e32svr.h>
+
+#ifdef _DEBUG
+
+#include <flogger.h>
+
+_LIT(KLogFile,"atcmdplugin.txt");
+_LIT(KLogDir,"atcmdplugin");
+_LIT(KATDebugFile, "log.txt" );
+_LIT(KATDebugDir, "atcmdplugin" );
+
+_LIT(KTracePrefix16, "[ATCmdPlugin] ");
+_LIT8(KTracePrefix8, "[ATCmdPlugin] ");
+_LIT8(KFuncFormat8, ">< %S");
+_LIT8(KFuncThisFormat8, ">< %S, [0x%08X]");
+_LIT8(KFuncEntryFormat8, "-> %S");
+_LIT8(KFuncEntryThisFormat8, "-> %S, [0x%08X]");
+_LIT8(KFuncEntryArgFormat8, "-> %S, (%S)");
+_LIT8(KFuncExitFormat8, "<- %S");
+_LIT(KPanicCategory, "ATCmdPlugin");
+_LIT8(KPanicPrefix8, "PANIC code ");
+_LIT8(KLeavePrefix8, "LEAVE code ");
+
+const TInt KMaxLogLineLength = 256;
+
+// Trace options
+#define KPRINTERROR		0x00000001 // Print error
+#define KPRINTINFO	    0x00000002 // Print function trace
+#define KPRINTSTATE		0x00000004 // Print state machine infos
+#define KPRINTWARNING  0x00000008 // Print warnings
+
+//#define USE_FILE_LOGGING
+
+const TInt KTraceMask = KPRINTERROR | KPRINTINFO | KPRINTSTATE | KPRINTWARNING;
+
+NONSHARABLE_CLASS(TOverflowTruncate16) : public TDes16Overflow
+	{
+public:
+	void Overflow(TDes16& /*aDes*/) {}
+	};
+
+NONSHARABLE_CLASS(TOverflowTruncate8) : public TDes8Overflow
+	{
+public:
+	void Overflow(TDes8& /*aDes*/) {}
+	};
+
+inline void Trace(TRefByValue<const TDesC16> aFmt, ...)
+    {
+	VA_LIST list;
+	VA_START(list,aFmt);
+    RBuf16 buf;
+    buf.Create(KMaxLogLineLength);
+    buf.Zero();    
+	buf.Append(KTracePrefix16);
+	TOverflowTruncate16 overflow;
+	buf.AppendFormatList(aFmt,list,&overflow);
+	RDebug::Print(buf);
+#ifdef USE_FILE_LOGGING
+    RFileLogger::Write(KLogDir, KLogFile, EFileLoggingModeAppend, buf);
+#endif
+	buf.Close();
+    }
+
+inline void Trace(TRefByValue<const TDesC8> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list, aFmt);
+	TOverflowTruncate8 overflow;
+    RBuf8 buf8;
+    buf8.Create(KMaxLogLineLength);
+    buf8.Zero();    
+    buf8.Append(KTracePrefix8);
+	buf8.AppendFormatList(aFmt, list, &overflow);
+    RDebug::RawPrint(buf8);
+#ifdef USE_FILE_LOGGING
+    RFileLogger::Write(KLogDir, KLogFile, EFileLoggingModeAppend, buf8);
+#endif
+    buf8.Close();
+    }
+
+inline void TracePanic(
+	char* aFile, 
+	TInt aLine,
+	TInt aPanicCode,
+	const TDesC& aPanicCategory)
+    {
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+    RBuf8 buf;
+    buf.Create(KMaxLogLineLength);
+    buf.Zero();    
+	buf.Append(KPanicPrefix8);
+	buf.AppendFormat(_L8("%d at line %d in file %S"), aPanicCode, aLine, &fileName);
+	Trace(buf);
+	buf.Close();
+	User::Panic(aPanicCategory, aPanicCode); 
+    }
+
+inline void TraceLeave(char* aFile, TInt aLine, TInt aReason)
+	{
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+    RBuf8 buf;
+    buf.Create(KMaxLogLineLength);
+    buf.Zero();    
+	buf.Append(KLeavePrefix8);
+	buf.AppendFormat(_L8("%d at line %d in file %S"), aReason, aLine, &fileName);
+	Trace(buf);
+	buf.Close();
+	User::LeaveIfError(aReason);
+	}
+
+inline TBuf8<64> ArgFormat(TRefByValue<const TDesC8> aFmt, ...)
+    {
+    TOverflowTruncate8 overflow;
+    TBuf8<64> buf8;
+    buf8.Format(aFmt, &overflow);
+    return buf8;
+    }
+
+#define TRACE_INFO(p) {if(KTraceMask & KPRINTINFO) Trace p;}
+
+#define TRACE_ERROR(p) {if(KTraceMask & KPRINTERROR) Trace p;}
+
+#define TRACE_STATE(p) {if(KTraceMask & KPRINTSTATE) Trace p;}
+
+#define TRACE_WARNING(p) {if(KTraceMask & KPRINTWARNING) Trace p;}
+
+#define TRACE_INFO_SEG(p) {if(KTraceMask & KPRINTINFO) p;}
+
+#define TRACE_ASSERT(GUARD, CODE) {if (!(GUARD)) \
+         TracePanic(__FILE__, __LINE__, CODE, KPanicCategory);}
+
+#define PANIC(CODE) TracePanic(__FILE__, __LINE__, CODE, KPanicCategory)
+
+#define LEAVE_IF_ERROR(REASON) {if (REASON) \
+         TraceLeave(__FILE__, __LINE__, REASON);}
+
+#define LEAVE(REASON) TraceLeave(__FILE__, __LINE__, REASON)
+
+#define TRACE_FUNC_ENTRY {if(KTraceMask & KPRINTINFO) { \
+                            TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); \
+                            Trace(KFuncEntryFormat8, &ptr8);}}
+
+#define TRACE_FUNC_ENTRY_THIS {if(KTraceMask & KPRINTINFO) {\
+                            TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); \
+                            Trace(KFuncEntryThisFormat8, &ptr8, this);}}
+
+#define	 TRACE_FUNC_EXIT {if(KTraceMask & KPRINTINFO) {\
+                            TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); \
+                            Trace(KFuncExitFormat8, &ptr8);}}
+
+#define TRACE_FUNC {if(KTraceMask & KPRINTINFO) { \
+                            TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); \
+                            Trace(KFuncFormat8, &ptr8);}}
+
+#define TRACE_FUNC_THIS {if(KTraceMask & KPRINTINFO) {\
+                            TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); \
+                            Trace(KFuncThisFormat8, &ptr8, this);}}
+
+#define TRACE_FUNC_ARG(a) { if(KTraceMask & KPRINTINFO) { \
+                            TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
+                            TPtrC8 arg( ArgFormat a ); \
+                            Trace( KFuncEntryArgFormat8, &func, &arg ); } }
+
+#define RETURN_IF_ERR(ERR) {if(ERR) {Trace(_L8(" RETURN %d at file %S line %d"), ERR, &(TPtrC8((const TUint8*)__FILE__)), __LINE__); return ERR;}}
+
+#else // ! _DEBUG
+
+#define TRACE_INFO(p)
+
+#define TRACE_ERROR(p)
+
+#define TRACE_STATE(p)
+
+#define TRACE_WARNING(p)
+
+#define TRACE_INFO_SEG(p)
+
+#define TRACE_ASSERT(GUARD, CODE)
+
+#define PANIC(CODE) {User::Panic(KPanicCategory, CODE);}
+
+#define LEAVE_IF_ERROR(REASON) {static_cast<void>(User::LeaveIfError(REASON));}
+
+#define LEAVE(REASON) {static_cast<void>(User::Leave(REASON));}
+
+#define TRACE_FUNC_ENTRY
+
+#define TRACE_FUNC_ENTRY_THIS
+
+#define TRACE_FUNC_EXIT
+
+#define TRACE_FUNC
+
+#define TRACE_FUNC_THIS
+
+#define TRACE_FUNC_ARG(a)
+
+#define RETURN_IF_ERR(ERR) {if(ERR) return ERR;}
+#endif // _DEBUG
+
+#endif // DEBUGTRACE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/inc/matcmdtimer.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,38 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :Abstract interface for MATCmdTimer callback functionality
+ *
+ */
+
+
+
+#ifndef __MATCMDTIMER_H
+#define __MATCMDTIMER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+class MATCmdTimer
+    {
+    public:
+        virtual void TimerExpiredL( TInt aRelatedCommand ) = 0;
+    };
+
+#endif // __MATCMDTIMER_H
+
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/readme.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,4 @@
+- AT Command plugin implements AT commands for AT+CKPD, AT+CBKLT, AT+CTSA
+- This plugin will not be part of SF and will be moved to ext folder later
+- To test this plugin we need to manually build 
+- Optionally, after building we can generate a sisx file and use it for testing. Look at ATCmdPlugin\sis folder for information
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/rom/atcmdplugin.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :Contains information about binary files and binary file locations
+ *
+ */
+
+#ifndef __ATCMDPLUGIN_IBY
+#define __ATCMDPLUGIN_IBY
+
+//#ifdef FF_ATNT_AT_COMMANDS
+
+// The above line ifdef is commented,Because FF_ATNT_AT_COMMANDSis going to be replaced with new macro.
+ECOM_PLUGIN(atcmdplugin.dll, atcmdplugin.rsc)
+S60_APP_RESOURCE(atcmdpluginresource)
+
+//#endif
+
+#endif // __ATCMDPLUGIN_IBY
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/sis/atcmdplugin.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,38 @@
+;
+; 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
+;
+
+; ExtAtCmdHandler.pkg
+;
+;Language - standard language definitions
+&EN
+
+;Standard SIS file header (use UI application UID)
+#{"ATCmdPlugin"},(0x2001A273),1,0,0
+
+;Supports Series 60 v 3.0
+[0x1028315F], 0, 0, 0, {"Series60ProductID"}
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Files to install
+"\epoc32\release\armv5\urel\atcmdplugin.dll"      -"!:\sys\bin\atcmdplugin.dll"
+"\epoc32\data\z\resource\plugins\atcmdplugin.rsc"   -"!:\resource\plugins\atcmdplugin.rsc"
+"\epoc32\data\z\resource\apps\atcmdpluginresource.rsc"         -"!:\resource\apps\atcmdpluginresource.rsc"
+
Binary file coreapplicationuis/ATCmdPlugin/sis/atcmdplugin.sis has changed
Binary file coreapplicationuis/ATCmdPlugin/sis/atcmdplugin.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/src/atcmd.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :
+ *
+ */
+
+
+
+// INCLUDES
+#include "debug.h"
+#include "atcmd.h"
+
+// CONSTANTS
+
+// ============================= LOCAL FUNCTIONS  =============================
+
+// ============================= MEMBER FUNCTIONS =============================
+
+CATCmdTranslation::CATCmdTranslation( HBufC8& aParam, const TInt aCode )
+    : iParam( &aParam ),
+      iCode( aCode )
+    {
+    }
+
+CATCmdTranslation::~CATCmdTranslation()
+    {
+    delete iParam;
+    }
+
+TInt CATCmdTranslation::Code() const
+    {
+    return iCode;
+    }
+
+TPtrC8 CATCmdTranslation::Param() const
+    {
+    return iParam->Des();
+    }
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/src/atcmdplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,1067 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :
+ *
+ */
+
+
+
+// INCLUDES
+#include <hwrmlightdomaincrkeys.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <hal.h>
+#include <atcmdpluginresource.rsg>
+#include <barsread.h>
+#include <barsc.h>
+#include <bautils.h>
+#include <e32math.h>
+#include <e32base.h>
+#include <eikenv.h>
+#include <apgtask.h>
+#include "debug.h"
+#include "atcmdplugin.h"
+
+// CONSTANTS
+_LIT8( KAtCkpd, "+CKPD" );
+_LIT8( KAtCbklt, "+CBKLT" );
+_LIT8( KCRLF, "\r\n" );
+_LIT8( KAtCtsa, "+CTSA");
+
+const TInt KCustomKeyCodeIdentifier = -1;
+const TInt KGranularity = 10;
+const TInt KTimeMultiplier = 100000;
+const TInt KMicroSeconds = 1000000;
+
+#define REPLY_BUFFER_SIZE 200
+
+// These values are based on testing results.
+// Values less than 2000 causes some times missing key events
+// even all keys are simulated with long commands.
+const TInt KDefaultStrokeDelay = 50000;
+const TInt KDefaultStrokeTime = 10000;
+
+const TInt KLightTarget = CHWRMLight::EPrimaryDisplayAndKeyboard;
+
+_LIT8( KParameterSeparator, "," );
+_LIT8( Kok, "\r\nOK\r\n");
+_LIT8( KCmeErrorNotSupported, "\r\n+CME ERROR: 4\r\n");
+_LIT8( KTestCommand, "=?" );
+_LIT8( KReadCommand, "?" );
+_LIT8( KCbkltTestCommandResp, ":(0,1,2)" );
+_LIT8( KCkpdTestCommandResp,  ":(GSM)" );
+_LIT8( KCtsaTestCommandResp, ":(0,1,2),(width),(height)" );
+_LIT( KFileName, "\\resource\\apps\\atcmdpluginresource.rsc" );
+
+
+// ============================= MEMBER FUNCTIONS =============================
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::NewL
+// 2-phased constructor
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+CATCmdPluginEcom* CATCmdPluginEcom::NewL()
+    {
+    CATCmdPluginEcom* self = new (ELeave) CATCmdPluginEcom();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::CATCmdPluginEcom
+// Constructor
+// ----------------------------------------------------------------------------
+//
+CATCmdPluginEcom::CATCmdPluginEcom() 
+    : CATExtPluginBase()
+    {
+    TRACE_FUNC
+    }
+     
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::ConstructL
+// Constructor
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::ConstructL()
+    {
+    TRACE_FUNC
+	
+    LEAVE_IF_ERROR( iWsSession.Connect() );
+    iCkpdCmdArray = new (ELeave) CArrayFixFlat<TATCkpdCmd>( KGranularity );
+    
+    iKpdTimer = new ( ELeave ) CATCmdTimer( *this, ECmdCkpd );
+	iKpdTimer->ConstructL();
+	
+    iBkltTimer = new ( ELeave ) CATCmdTimer( *this, ECmdCbklt );
+    iBkltTimer->ConstructL();
+    
+    iKeepAliveTimer = new ( ELeave ) CATCmdTimer( *this, EKeepAlive );
+    iKeepAliveTimer->ConstructL();
+
+	
+    LoadResourcesL();
+   	}
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::::LoadResourcesL
+// Load resources
+// (may leave)
+// Status : Approved
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::LoadResourcesL()
+    {
+    TRACE_FUNC_ENTRY
+
+    RFs fs;
+    CleanupClosePushL( fs );
+
+    TFileName fileName;
+    fileName.Copy( KFileName );
+    User::LeaveIfError( fs.Connect() );
+    BaflUtils::NearestLanguageFile( fs, fileName );
+
+    RResourceFile resourceFile;
+    CleanupClosePushL( resourceFile );
+    resourceFile.OpenL( fs, fileName );
+    resourceFile.ConfirmSignatureL();
+
+    HBufC8* buf8 = resourceFile.AllocReadLC( R_ATCMDPLUGIN_TRANSLATIONTABLE );
+    
+    TResourceReader reader;
+    reader.SetBuffer( buf8 );
+    
+    TInt count = reader.ReadInt16(); // array count
+    iTranslations = new ( ELeave ) CArrayPtrFlat<CATCmdTranslation>( count );
+
+    while ( count-- )
+        {
+        const TInt code = reader.ReadInt32(); 
+
+        HBufC8* param = reader.ReadHBufC8L(); 
+        CleanupStack::PushL( param );
+        CATCmdTranslation* t = new (ELeave) CATCmdTranslation( *param, code );
+        CleanupStack::Pop( param ); // transfer ownership
+
+        CleanupStack::PushL( t );
+        iTranslations->AppendL( t );
+        CleanupStack::Pop( t ); // transfer ownership
+        }
+
+    CleanupStack::PopAndDestroy( 3 ); // resourceFile, fs, buf8
+
+    TRACE_FUNC_EXIT
+    }
+
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::~CATCmdPluginEcom
+// C++ Destructor
+// ----------------------------------------------------------------------------
+//
+CATCmdPluginEcom::~CATCmdPluginEcom()
+	{
+	TRACE_FUNC
+	
+    if(iKpdTimer)
+        {
+        iKpdTimer->Cancel();
+        delete iKpdTimer;
+        }	    
+    if(iBkltTimer)
+        {
+        iBkltTimer->Cancel();
+        delete iBkltTimer;
+        }
+    if(iKeepAliveTimer)
+        {
+        iKeepAliveTimer->Cancel();
+        delete iKeepAliveTimer;
+        }
+    if ( iTranslations)
+        {
+        iTranslations->ResetAndDestroy();
+        delete iTranslations;
+        }    
+    if ( iCkpdCmdArray)
+        {
+        iCkpdCmdArray->Reset();
+        delete iCkpdCmdArray;
+        }
+    iWsSession.Close();
+	}
+
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::HandleCommand
+// Handle given command
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::HandleCommand( const TDesC8& aCmd, RBuf8& aReply, TBool /* aReplyNeeded  */)
+	{
+	TRACE_FUNC_ENTRY
+	aReply.Create(REPLY_BUFFER_SIZE);
+	aReply.Zero();
+	iReplyBuf = &aReply;
+	
+	if ( IsCommandSupported( aCmd ) )
+	    {
+	    	
+		TRAPD( err, HandleCommandL( aCmd ) );
+
+		if ( err )
+			{
+			iReplyBuf->Append( KCmeErrorNotSupported ); 
+			}
+		else
+			{
+			if(iReplyBuf->Length() == 0)
+				{
+				iReplyBuf->Append( Kok );
+				} 
+			}
+		HandleCommandCompleted( KErrNone,EReplyTypeOk );      
+		}
+    TRACE_FUNC_EXIT
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::HandleCommandL
+// Handle given command
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::HandleCommandL( const TDesC8& aCmd )
+	{
+    // Verify command
+    TInt offset;
+    HBufC8* cmd = aCmd.AllocLC();
+//    CleanupStack:: PushL(cmd);
+    TPtr8 ptr = cmd->Des();
+
+    ptr.Trim();
+    TPtrC8 cptr;
+
+    if ( ( offset = ptr.FindF(KAtCkpd) ) >= 0 )
+        {
+        cptr.Set( ptr.Mid( offset + KAtCkpd().Length() ) );         
+        HandleCkpdCommandL( cptr );
+        }
+    else if ( ( offset = ptr.FindF(KAtCbklt) ) >= 0 ) 
+        {
+        cptr.Set( ptr.Mid( offset + KAtCbklt().Length() ) );
+        HandleCbkltCommandL( cptr );
+        }
+    else if ( ( offset = ptr.FindF(KAtCtsa) ) >= 0 )
+    	{
+    	cptr.Set( ptr.Mid( offset + KAtCtsa().Length() ) );
+    	HandleCtsaCommandL( cptr );
+    	} 
+    CleanupStack::PopAndDestroy( cmd );
+    }    
+
+// -------------------------
+//  HandleCtsaCommandL
+//
+// -------------------------
+
+void CATCmdPluginEcom::HandleCtsaCommandL( const TDesC8& aCmd )
+    {
+    
+    if ( aCmd.Compare( KTestCommand ) == 0 )
+        {
+        // Test command just returns "OK"        
+        iReplyBuf->Append( KCRLF );
+        iReplyBuf->Append( KAtCtsa );
+        iReplyBuf->Append( KCtsaTestCommandResp );
+        iReplyBuf->Append( KCRLF );
+        TRACE_FUNC_EXIT
+        return;
+        }  
+    
+    // Check boundary condition
+	if ( ( aCmd.Length() < 6 ) || ( aCmd[2] !=  ',' ))
+	    {
+	    // Command Syntax Error
+	    User::Leave( KErrNotSupported );           
+	    } 	
+ 	TInt   pos=0;
+ 	TInt8  actionValue = aCmd[1] - '0';
+ 	TInt16 xCoordinateValue = 0;
+ 	TInt16 yCoordinateValue = 0;
+ 	TInt16 commandLen = aCmd.Length();  
+ 	 
+ 	
+ 	if( actionValue < 0 || actionValue > 4 )
+ 	    {
+ 	    // Command Syntax Error          
+ 	    User::Leave( KErrNotSupported );                  
+ 	    }
+ 	
+ 	pos=3;  // X Cordinate starts from 3d character
+ 	
+ 	CWsScreenDevice *scrnDevPointer = new(ELeave) CWsScreenDevice(iWsSession);
+ 	TSize coordinateSize;
+ 	
+	scrnDevPointer->Construct();
+ 	coordinateSize = scrnDevPointer->SizeInPixels();  
+ 	delete scrnDevPointer;
+ 	
+	while(pos < commandLen)
+ 	    {
+ 	    if((aCmd[pos] >=  '0') && (aCmd[pos] <=  '9'))
+ 	        {
+ 	        xCoordinateValue *= 10;
+ 	        xCoordinateValue += aCmd[pos] - '0';
+ 	        pos++;
+ 	        if(xCoordinateValue > coordinateSize.iWidth )
+ 	            {
+ 	            // Command Syntax Error            
+ 	            User::Leave( KErrNotSupported );           
+ 	            }
+ 	        }
+ 	    else if((aCmd[pos] ==  ',') && pos > 3 )
+            {
+            pos++;
+            break;
+            }
+ 	    else
+ 	        {
+ 	        // Command Syntax Error            
+ 	        User::Leave( KErrNotSupported );             
+ 	        } 	    
+ 	    }
+	if(pos == commandLen)	
+		{
+		// Command of type =0,100        /* Command Syntax Error */
+ 	    User::Leave( KErrNotSupported );  
+		}
+ 	while(pos < commandLen)
+ 	    {
+ 	    if((aCmd[pos] >=  '0') && (aCmd[pos] <=  '9'))
+ 	        {
+ 	        yCoordinateValue *= 10;
+ 	        yCoordinateValue += aCmd[pos] - '0';
+ 	        pos++;
+			if(yCoordinateValue > coordinateSize.iHeight)
+ 	            {
+ 	            // Command Syntax Error            
+ 	            User::Leave( KErrNotSupported );           
+ 	            }
+ 	        }
+ 	    else
+ 	        {
+ 	        // Command Syntax Error            
+ 	        User::Leave( KErrNotSupported );             
+ 	        }       
+ 	    }
+ 	
+ 	TRawEvent rawEvent;
+	switch(actionValue)
+		{
+		case 0:  // Release pointer event
+		    {
+			rawEvent.Set( TRawEvent::EButton1Up, xCoordinateValue, yCoordinateValue);
+			iWsSession.SimulateRawEvent(rawEvent);
+			iWsSession.Flush();
+			break;
+			}
+		case 1:   // Depress pointer event
+			{
+			rawEvent.Set( TRawEvent::EButton1Down, xCoordinateValue, yCoordinateValue);
+			iWsSession.SimulateRawEvent(rawEvent);
+			iWsSession.Flush();
+			break;
+			}
+		case 2:   // Single tap pointer event
+			{
+			rawEvent.Set( TRawEvent::EButton1Down, xCoordinateValue, yCoordinateValue);
+			iWsSession.SimulateRawEvent(rawEvent);
+			rawEvent.Set( TRawEvent::EButton1Up, xCoordinateValue+1, yCoordinateValue+1);
+			iWsSession.SimulateRawEvent(rawEvent);
+			iWsSession.Flush();
+			break;
+			}
+		case 3:   // Double tap pointer event
+			{
+			rawEvent.Set( TRawEvent::EButton1Down, xCoordinateValue, yCoordinateValue);
+			iWsSession.SimulateRawEvent(rawEvent);
+			rawEvent.Set( TRawEvent::EButton1Up, xCoordinateValue+1, yCoordinateValue+1);
+			iWsSession.SimulateRawEvent(rawEvent);
+			rawEvent.Set( TRawEvent::EButton1Down, xCoordinateValue, yCoordinateValue);
+			iWsSession.SimulateRawEvent(rawEvent);
+			rawEvent.Set( TRawEvent::EButton1Up, xCoordinateValue+1, yCoordinateValue+1);
+			iWsSession.SimulateRawEvent(rawEvent);
+			iWsSession.Flush();
+			break;
+			}
+		}
+	}     
+    
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::HandleCkpdCommandL
+// Handle CKPD command
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::HandleCkpdCommandL( const TDesC8& aCmd )
+    {
+    TRACE_FUNC_ENTRY
+    TBool commandVerified(EFalse);
+    TInt strokeTime = 0;
+    TInt strokeDelay = 0;
+    
+    if ( aCmd.Compare( KTestCommand ) == 0 )
+        {
+        iReplyBuf->Append( KCRLF );
+        iReplyBuf->Append( KAtCkpd );
+        iReplyBuf->Append( KCkpdTestCommandResp );
+        iReplyBuf->Append( KCRLF );
+        TRACE_FUNC_EXIT
+        return;
+        }
+
+    CArrayFix<TATCkpdCmd>* ckpdCmds = 
+        new (ELeave) CArrayFixFlat<TATCkpdCmd>( KGranularity );
+    CleanupStack::PushL( ckpdCmds );
+    
+    // Check that keys are defined
+    if (  aCmd.Length() <= 1  )
+        {
+        // Command Syntax Error          
+        User::Leave( KErrNotSupported );           
+        }
+
+    // Go through keys
+    TBuf8<2> key;
+    for (TInt i = 1 ; i < aCmd.Length(); i++ )
+        {
+        key.Copy(&aCmd[i],1);
+
+        // Go through translation table for every character
+        for ( TInt j = 0; j < iTranslations->Count(); j++ )
+            {
+            CATCmdTranslation& translation = *iTranslations->At( j );
+            if ( key.CompareF( translation.Param() ) == 0 )
+                {
+                // Check if key is escape character for manufacturer specific keys
+                if ( translation.Code() == KCustomKeyCodeIdentifier )
+                    {
+                    // Read next key to form key combination
+                    i++;
+                    
+                    // Check that there are key after escape character
+                    if ( i >= aCmd.Length() )
+                        {
+                        TRACE_INFO(( _L( "INFO: invalid manufacturer specific key" ) ))            
+                        // Not handled
+                        User::Leave( KErrNotSupported );           
+                        }
+
+                    if ( key.Length() < key.MaxLength() )
+                        {
+                        key.Append(aCmd[i]);
+                        }
+
+                    // Start looping again for looking keycombination
+                    // from translation table
+                    j = 0;
+                    }
+                else
+                    {
+                    // Command verified
+                    commandVerified = ETrue;
+
+                    if ( translation.Code() != EKeyNull )
+                        {
+                        TATCkpdCmd cmd;
+                        cmd.iCode = translation.Code();
+                        ckpdCmds->AppendL( cmd );
+                        }
+
+                    break;
+                    }
+                }
+            }
+
+        if (!commandVerified)
+            {
+            // Check if character is parameter separator
+            if ( key.Compare( KParameterSeparator ) == 0 )
+                {
+                i++;
+
+                if ( i > aCmd.Length() )
+                    {
+                    TRACE_ERROR(( _L( "ERROR: invalid stroke time parameter" ) ))
+
+                    // Not handled
+                    User::Leave( KErrNotSupported );
+                    }
+
+                ParseParametersL(
+                        aCmd.Right(aCmd.Length()-i),
+                        strokeTime,
+                        strokeDelay);
+
+                strokeTime *= KTimeMultiplier;
+                strokeDelay *= KTimeMultiplier;
+                
+                break;
+                }
+            else
+                {
+                TRACE_ERROR(( _L8( "ERROR: Command %S not supported" ), &key ))
+
+                // Not handled
+                User::Leave( KErrNotSupported );
+                }
+            }
+
+        commandVerified = EFalse;
+        }
+
+    // Set default stroke time and delay if those are not set with parameters or
+    // parameter value have been zero. If values are not greater than ~2ms there
+    // is possibility to loose key events with long commands even all keys are
+    // simulated by atcmdplugin
+    if ( !strokeTime )
+        {
+        strokeTime = KDefaultStrokeTime;
+        }
+
+    if ( !strokeDelay )
+        {
+        strokeDelay = KDefaultStrokeDelay;
+        }
+
+    // Append commands to command array
+    for ( TInt count = 0; count < ckpdCmds->Count(); count++ )
+        {
+        TATCkpdCmd cmd = ckpdCmds->At(count);
+        cmd.iStrokeTime = strokeTime;
+        cmd.iStrokeDelay = strokeDelay;
+        
+        iCkpdCmdArray->AppendL( cmd );
+        }
+
+    CleanupStack::PopAndDestroy(ckpdCmds);
+
+    SendKeyL();
+    
+    TRACE_FUNC_EXIT
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::HandleCbkltCommandL
+// Handle CKPD command
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::HandleCbkltCommandL( const TDesC8& aCmd )
+    {
+    TRACE_FUNC_ENTRY
+
+         
+    if ( aCmd.Compare( KTestCommand ) == 0 )
+        {
+        iReplyBuf->Append( KCRLF );
+        iReplyBuf->Append( KAtCbklt );
+        iReplyBuf->Append( KCbkltTestCommandResp );
+        iReplyBuf->Append( KCRLF );
+        TRACE_FUNC_EXIT
+        return;
+        }
+		
+	if(iLightStatus != ELightOnWithDuration)
+		{
+		iLight = CHWRMLight::NewL( this );
+	
+		iLightStatus = 
+			( iLight->LightStatus( KLightTarget ) == CHWRMLight::ELightOff )?
+			ELightOff : ELightOn;   
+		delete iLight;		
+		}
+
+    if ( aCmd.Compare( KReadCommand ) == 0 )
+        {
+        iReplyBuf->Append( KCRLF );
+        iReplyBuf->Append( KAtCbklt );
+        iReplyBuf->Append( ':' );
+        iReplyBuf->Append( ' ' );
+        iReplyBuf->AppendNum( iLightStatus );
+        if ( iLightStatus == ELightOnWithDuration )
+            {
+            iReplyBuf->Append( ',' );
+            iReplyBuf->AppendNum( iDuration );
+            }
+        iReplyBuf->Append( KCRLF );
+        TRACE_FUNC_EXIT
+        return;
+        }
+
+    if ( aCmd.Length() <= 1 )
+        {
+        // Command Syntax Error        
+        User::Leave( KErrNotSupported );
+        }
+
+    switch ( aCmd[ 1 ] )
+        {
+        case '0':
+            {
+            if ( aCmd.Length() == 2 )
+                {
+                iKeepAliveTimer->Cancel();
+                DisableBackLight();
+                iLightStatus = ELightOff;
+                }
+            else
+                {
+                //if the command is too long it means that is incorrect
+                User::Leave( KErrNotSupported );
+                }
+            break;
+            }
+        case '1':
+            {
+            if ( ( aCmd.Length() > 3 ) && ( aCmd[ 2 ] == ',' ) )
+                {                
+                TInt pos = 3;
+                TInt commandLen = aCmd.Length();
+                iDuration = 0;
+                while(pos < commandLen)
+                        {
+                        if((aCmd[pos] >=  '0') && (aCmd[pos] <=  '9'))
+                            {
+                            iDuration *= 10;
+                            iDuration += aCmd[pos] - '0';
+                            pos++;
+                            }
+                        else
+                            {
+                            User::Leave( KErrNotSupported );             
+                            }
+                        }
+                iBkltTimer->Cancel();
+                iBkltTimer->After( iDuration * KMicroSeconds );
+                EnableBackLight();
+                if ( !iKeepAliveTimer->IsActive() )
+                     {
+                     iKeepAliveTimer->After( 2000000 );
+                     }
+                iLightStatus = ELightOnWithDuration;
+                }
+            else
+                {
+                //the command is wrong
+                User::Leave( KErrNotSupported );
+                }
+            break;
+            }
+        case '2':
+            {
+            if ( aCmd.Length() == 2 )
+                {
+                iBkltTimer->Cancel();
+                EnableBackLight();
+                if ( !iKeepAliveTimer->IsActive() )
+                    {
+                    iKeepAliveTimer->After( 2000000 );
+                    }
+                iLightStatus = ELightOn;
+                }
+            else
+                {
+                //if the command is too long it means that is incorrect
+                User::Leave( KErrNotSupported );
+                }
+            break;
+            }
+        default:
+            {
+            User::Leave( KErrNotSupported );
+            }
+        }
+    TRACE_FUNC_EXIT
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::EnableBackLight()
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::EnableBackLight()
+	{
+	TRACE_FUNC
+	RProperty::Set( KPSUidCoreApplicationUIs, KLightsATCForcedLightsOn, EForcedLightsOn );
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::DisableBackLight()
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::DisableBackLight()
+	{
+	TRACE_FUNC
+    RProperty::Set( KPSUidCoreApplicationUIs, KLightsATCForcedLightsOn, EForcedLightsOff );
+    }
+
+// -----------------------------------------------------------------------------
+// CATCmdPluginEcom::LightStatusChanged()
+// -----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::LightStatusChanged( TInt /*aTarget*/, CHWRMLight::TLightStatus /*aStatus*/ )
+	{
+	//TRACE_STATE(( _L( "** LightStatusChanged %d, %d" ), aTarget, aStatus ))
+  }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::IsCommandSupported
+// -
+// ----------------------------------------------------------------------------
+//
+TBool CATCmdPluginEcom::IsCommandSupported( const TDesC8& aCmd )
+    {
+    TRACE_FUNC
+    TBool ret(EFalse);
+    
+    if ( aCmd != KNullDesC8 && ( aCmd.FindF(KAtCkpd) >= 0 || 
+                                 aCmd.FindF(KAtCbklt) >= 0 || aCmd.FindF(KAtCtsa) >= 0 ))
+        {
+        ret = ETrue;
+        }
+    return ret;
+    }
+
+// CATCmdPluginEcom::ParseParameterL
+// -
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::ParseParametersL( 
+        const TDesC8& aCmd,
+        TInt& aStrokeTime,
+        TInt& aStrokeDelay )
+    {
+    TRACE_FUNC_ENTRY
+    
+    TInt i(0);
+    
+    if ( !aCmd.Length() )
+        {
+        TRACE_ERROR(( _L( "ERROR: invalid stroke time parameter" ) ))            
+        // Not handled
+        User::Leave( KErrNotSupported );           
+        }
+
+
+    // Parse stroke time parameter
+    TBuf8<3> strokeTimeBuf;
+
+    // Go through command until end or parameter separator is reached
+    for ( ; i < aCmd.Length(); i++ )
+        {
+        if ( aCmd[i] >= '0' && aCmd[i] <= '9' )
+            {
+            strokeTimeBuf.Append(aCmd[i]);
+            continue;
+            }
+        else if ( aCmd[i] == ',' || aCmd[i] == '\r' || aCmd[i] == '\n' )
+            {
+            i++;
+            break;
+            }
+        else
+            {
+            TRACE_ERROR(( _L( "ERROR: invalid stroke time parameter" ) ))
+
+            // Not handled
+            User::Leave( KErrNotSupported );   
+            }
+        }
+
+    TLex8 strokeTimeLex( strokeTimeBuf );          
+    strokeTimeLex.Val( aStrokeTime );
+
+    // Verify parsed parameter
+    if ( aStrokeTime < 0 || aStrokeTime > 255 )
+        {
+        TRACE_ERROR(( _L( "ERROR: invalid stroke time parameter" ) ))
+
+        // Not handled
+        User::Leave( KErrNotSupported );
+        }
+
+
+    // Parse stroke delay parameter
+    TBuf8<3> strokeDelayBuf;
+
+    for ( ; i < aCmd.Length(); i++ )
+        {
+        if ( aCmd[i] >= '0' && aCmd[i] <= '9' )
+            {
+            strokeDelayBuf.Append(aCmd[i]);
+            continue;
+            }
+        else if ( aCmd[i] == ',' || aCmd[i] == '\r' || aCmd[i] == '\n' )
+            {
+            break;
+            }
+        else
+            {
+            TRACE_ERROR(( _L( "ERROR: invalid stroke delay parameter" ) ))
+
+            // Not handled
+            User::Leave( KErrNotSupported );   
+            }
+        }
+
+    TLex8 strokeDelayLex( strokeDelayBuf );          
+    strokeDelayLex.Val( aStrokeDelay );
+
+    if ( aStrokeDelay < 0 || aStrokeDelay > 255 )
+        {
+        TRACE_ERROR(( _L( "ERROR: invalid stroke delay parameter" ) ))
+
+        // Not handled
+        User::Leave( KErrNotSupported );
+        }
+    
+    TRACE_FUNC_EXIT
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::SendKeyL
+// -
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::SendKeyL()
+	{
+	TRACE_FUNC
+
+	if ( !iKpdTimer->IsActive() )
+	    {
+	    const TInt count = iCkpdCmdArray->Count();
+	    if ( count )
+	        {
+            TATCkpdCmd cmd = iCkpdCmdArray->At(0);
+            TKeyEvent key;
+            key.iScanCode = cmd.iCode;
+            key.iCode = 0;
+            key.iRepeats = 0;
+            
+            TTimeIntervalMicroSeconds32 strokeTime = cmd.iStrokeTime;
+            TTimeIntervalMicroSeconds32 strokeDelay = cmd.iStrokeDelay;
+
+            TRACE_INFO(( _L( "   Scancode:%d, stroke time:%d, stroke delay: %d" ),
+                        key.iScanCode, strokeTime.Int(), strokeDelay.Int() ))
+
+            if ( iLastEvent == EEventNull || iLastEvent == EEventKeyUp)
+                {
+                SimulateRawEventL( key, EEventKeyDown );                    
+                
+                if ( strokeTime.Int() > 0)
+                    {
+                    iKpdTimer->After( strokeTime );
+                    return;
+                    }
+                }
+            
+            if ( iLastEvent == EEventKeyDown || iLastEvent == EEventKey )
+                {
+                SimulateRawEventL( key, EEventKeyUp );
+
+                iCkpdCmdArray->Delete( 0 );
+                
+                if ( strokeDelay.Int() > 0 && iCkpdCmdArray->Count() > 0 )
+                    {
+                    iKpdTimer->After( strokeDelay );
+                    return;
+                    }
+                else
+                    {
+                    SendNextKeyL();
+                    }
+                }
+	        }
+	    }
+	}
+
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::SendNextKeyL
+// -
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::SendNextKeyL()
+    {
+    TRACE_FUNC
+
+    const TInt count = iCkpdCmdArray->Count();
+    if ( count )
+        {
+        SendKeyL();
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::TimerExpiredL
+// -
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::TimerExpiredL( TInt aRelatedCommand )
+	{
+	TRACE_FUNC
+	
+	if( aRelatedCommand == ECmdCkpd )
+		{
+        SendNextKeyL();
+		}
+	else if ( aRelatedCommand == ECmdCbklt )
+	    {
+	    DisableBackLight();
+	    iLightStatus = ELightOff;
+	    iKeepAliveTimer->Cancel();
+	    }
+	else
+	    {
+	    User::ResetInactivityTime();
+	    iKeepAliveTimer->After( 2000000 );
+	    }
+	}		
+    
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::SimulateRawEventL
+// -
+// (may leave)
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::SimulateRawEventL( TKeyEvent& aKey, TEventCode aEvent )   
+    {
+    TRACE_FUNC
+
+    TRawEvent rawEvent;
+    TRawEvent::TType rawType( TRawEvent::ENone );
+    switch ( aEvent )
+        {
+        case EEventKeyUp:
+            rawType = TRawEvent::EKeyUp;
+            break;
+        case EEventKeyDown:
+            rawType = TRawEvent::EKeyDown;
+            break;
+        default:
+            break;
+        }
+
+    if ( rawType != TRawEvent::ENone )
+        {
+        rawEvent.Set( rawType, aKey.iScanCode );
+        iWsSession.SimulateRawEvent( rawEvent );
+        iWsSession.Flush();
+        }
+
+    iLastEvent = aEvent;
+    }
+
+// ========================= OTHER EXPORTED FUNCTIONS =========================
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::CATCmdTimer::CATCmdTimer
+// C++Constructor
+// ----------------------------------------------------------------------------
+//
+CATCmdPluginEcom::CATCmdTimer::CATCmdTimer( MATCmdTimer& aObserver, 
+                                         TInt aRelatedCommand )
+    : CTimer( EPriorityStandard ),
+      iObserver( aObserver ),
+      iRelatedCommand( aRelatedCommand )
+    {
+    TRACE_FUNC
+
+    CActiveScheduler::Add( this );
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::CATCmdTimer::ConstructL
+// 2nd phase constructor
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::CATCmdTimer::ConstructL()
+    {
+    TRACE_FUNC
+    CTimer::ConstructL();
+    }
+
+// ----------------------------------------------------------------------------
+// CATCmdPluginEcom::CATCmdTimer::RunL
+// Timer callback
+// ----------------------------------------------------------------------------
+//
+void CATCmdPluginEcom::CATCmdTimer::RunL()
+    {
+    TRACE_FUNC
+
+    const TInt err = iStatus.Int();
+    if ( err != KErrCancel )
+        {
+        iObserver.TimerExpiredL( iRelatedCommand );
+        }
+    }
+
+
+void CATCmdPluginEcom::ReportConnectionName( const TDesC8&  /*  aName  */)
+    {
+    
+    }
+void CATCmdPluginEcom::HandleCommandCancel()
+    {
+    
+    }
+void CATCmdPluginEcom::ReportExternalHandleCommandError()
+    {
+    
+    }
+void CATCmdPluginEcom::ReportNvramStatusChange( const TDesC8& /*  aNvram  */)
+    {
+    
+    }
+void CATCmdPluginEcom::ReceiveUnsolicitedResultCancel()
+    {
+    
+    }
+void CATCmdPluginEcom::ReceiveUnsolicitedResult()
+    {
+    
+    }
+TInt CATCmdPluginEcom::GetNextPartOfReply( RBuf8& /* aNextReply  */)
+    {
+    return KErrNone;
+    }
+TInt CATCmdPluginEcom::NextReplyPartLength()
+    {
+    return KErrNone;
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/ATCmdPlugin/src/main.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,56 @@
+
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * Description :
+ *
+ */
+
+
+
+// INCLUDES
+#include <e32base.h>
+#include <ecom/implementationproxy.h>
+#include "atcmdpluginuids.hrh"
+#include "atcmdplugin.h"
+
+// ============================= LOCAL FUNCTIONS  =============================
+
+// ============================= MEMBER FUNCTIONS =============================
+
+// ========================= OTHER EXPORTED FUNCTIONS =========================
+
+// ----------------------------------------------------------------------------
+// ImplementationTable
+// Ecom plug-in implementation table
+// Status : Approved
+// ----------------------------------------------------------------------------
+//
+const TImplementationProxy ImplementationTable[] =
+	{
+	IMPLEMENTATION_PROXY_ENTRY( KUidATCmdEcomImpl1, CATCmdPluginEcom::NewL ),
+	};
+
+// ----------------------------------------------------------------------------
+// ImplementationGroupProxy
+// Instance of implementation proxy
+// (exported)
+// Status : Approved
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+	{
+	aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+
+	return ImplementationTable;
+	}
+
+//  End of File  
--- a/coreapplicationuis/DbRecovery/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/Group/DbRecovery.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/DbRecovery/Group/DbRecovery.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -21,7 +21,7 @@
 #include <platform_paths.hrh>
 
 
-TARGET          DbRecovery.exe
+TARGET          dbrecovery.exe
 TARGETTYPE      exexp
 
 UID             0x100039CE 0x10005A17
@@ -42,8 +42,8 @@
 LIBRARY         euser.lib
 LIBRARY         edbms.lib
 LIBRARY         diskspacereserver.lib
-LIBRARY         EFSRV.LIB
-LIBRARY	        CHARCONV.LIB
-LIBRARY         ESTOR.LIB
+LIBRARY         efsrv.lib
+LIBRARY	        charconv.lib
+LIBRARY         estor.lib
 LIBRARY         cntmodel.lib
 // End of File
--- a/coreapplicationuis/DbRecovery/Group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/Inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/DbRecovery/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/BWINS/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/Inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/Logger/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/group/GSServerEngine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/GSServerEngine/group/GSServerEngine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 // To get the MW_LAYER_SYSTEMINCLUDE-definition
 #include <platform_paths.hrh>
 
-TARGET                  GSServerEngine.dll
+TARGET                  gsserverengine.dll
 TARGETTYPE              dll
 UID                     0x10281F16
 
--- a/coreapplicationuis/GSServerEngine/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/GSServerEngine/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/NspsWsPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/NspsWsPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/NspsWsPlugin/group/NspsWsPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/NspsWsPlugin/group/NspsWsPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET          NspsWsPlugin.DLL
+TARGET          nspswsplugin.dll
 TARGETTYPE      ANI
 UID             0x10003B22 0x10005A15
 VENDORID        VID_DEFAULT
@@ -34,7 +34,7 @@
 SOURCE          NspsWsPlugin.cpp
 SOURCE          NspsWsPluginDll.cpp
 
-LIBRARY         EUSER.LIB
+LIBRARY         euser.lib
 
 EXPORTUNFROZEN
 
--- a/coreapplicationuis/NspsWsPlugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/NspsWsPlugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 DEFAULT
 
 PRJ_EXPORTS
-../inc/NspsWsPluginDllStd.h |../../inc/NspsWsPluginDllStd.h
+../inc/NspsWsPluginDllStd.h |../../inc/nspswsplugindllstd.h
 
 PRJ_MMPFILES
 ../group/NspsWsPlugin.mmp
--- a/coreapplicationuis/NspsWsPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/NspsWsPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/NspsWsPlugin/src/NspsWsPlugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/NspsWsPlugin/src/NspsWsPlugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 
 // INCLUDE FILES
 #include <e32property.h>
-#include "CoreApplicationUIsInternalPSKeys.h"
+#include "coreapplicationuisinternalpskeys.h"
 #include "NspsWsPluginDllStd.h"
 #include "NspsWsPlugin.h"         // this
 
--- a/coreapplicationuis/Rfs/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/data/10275117.rss	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  ECOM plugin resource file for GS RFS plugin.
-*
-*/
-
-
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
-	{
-	dll_uid     = 0x10275117; // Plugin dll UID
-	interfaces  = 
-		{
-		INTERFACE_INFO
-			{
-			interface_uid   = 0x10207236; // UID for CGSPluginInterface - do not change.
-			implementations = 
-				{
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid  = 0x10275118; // Plugin UID
-					version_no          = 1;
-					display_name        = "GS RFS Plugin"; // Plugin debug name
-					default_data        = "0x10283317"; // Parent UID
-					opaque_data         = "40"; // Order number
-					}
-				};
-			}
-		};
-	}
-
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/data/GSRFSPluginRsc.rss	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*        Resource file for GSRFSPlugin
-*
-*/
-
-
-//  RESOURCE IDENTIFIER
-NAME    GRFS // 4 letter ID
-
-//  INCLUDES
-
-#include <avkon.rsg>
-#include <avkon.mbg>
-#include <EIKCORE.rsg>
-#include <eikon.rsg>
-#include <avkon.loc>
-#include "gsrfsplugin.hrh"
-#include "gsrfsplugin.loc"
-#include <uikon.rh>
-
-
-// CONSTANTS
-
-//  RESOURCE DEFINITIONS 
-
-//----------------------------------------------------
-//   
-//    
-//    Needed or loading the resource fails!
-//
-//----------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
-    {
-    }
-
-#include "gscommonresources.rss"
-RESOURCE TBUF
-    {
-    buf="GRFS";
-    }
-
-//----------------------------------------------------
-//
-//    EIK_APP_INFO
-//    It contains application information.
-//
-//----------------------------------------------------
-//
-RESOURCE EIK_APP_INFO
-    {
-    }
-
-//----------------------------------------------------
-//  r_rfs_factory_settings
-// 
-//  Orig. factory settings caption for plugin
-//----------------------------------------------------
-//
-RESOURCE TBUF r_rfs_factory_settings
-    {
-    buf = qtn_set_folder_original_settings;
-    }
-
-//----------------------------------------------------
-//  r_rfs_factory_settings_title
-//
-//  Factory settings view title.
-//----------------------------------------------------
-//
-RESOURCE TITLE_PANE r_rfs_factory_settings_title
-    {
-    txt = qtn_set_folder_original_settings;
-    }
-
-
-//----------------------------------------------------
-//  r_rfs_factory_settings_view
-//  
-//  Factory settings view.
-//----------------------------------------------------
-//
-RESOURCE MENU_BAR r_gs_menubar_exit_help
-    {
-    titles =
-        {
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_exit;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_help;
-            }
-        };
-    }
-
-
-RESOURCE CBA r_gs_rfs_softkeys_options_back__exit
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyBack; txt = text_softkey_back; }
-        };
-    }
-
-RESOURCE AVKON_VIEW r_rfs_factory_settings_view
-    {
-    menubar = r_gs_menubar_exit_help; 
-    cba = r_gs_rfs_softkeys_options_back__exit;
-    }
-
-
-
-//----------------------------------------------------
-//  r_rfs_factory_settings_lbx
-//
-//  Factory settings view's listbox.
-//----------------------------------------------------
-
-//
-RESOURCE GS_FEATURE_ARRAY r_rfs_factory_settings_lbx
-    {
-    items =
-        {
-        GS_FEATURE
-            {
-            txt = " \t"qtn_rfs_orig_settings"\t\t";
-            item = EGSSettIdOptNormalRfs;
-
-            },
-        GS_FEATURE
-            {
-            txt = " \t"qtn_rfs_erase_all_data"\t\t";
-            item = EGSSettIdOptDeepRfs;
-            }
-        };
-    }
-
-//End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/group/GSRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Project specification file.
-*
-*/
-
-
-#include  <data_caging_paths.hrh>    // For RESOURCE_FILES_DIR
-#include <platform_paths.hrh>
-
-CAPABILITY          CAP_ECOM_PLUGIN
-TARGET              GSRFSPlugin.dll
-TARGETTYPE          PLUGIN
-UID                 0x10009D8D 0x10275117
-VENDORID            VID_DEFAULT
-
-
-SOURCEPATH  ../src
-SOURCE      GSRFSPluginImplementationTable.cpp
-SOURCE      GSRFSPlugin.cpp
-SOURCE      GSRFSPluginContainer.cpp
-
-//User include paths
-USERINCLUDE     ../inc
-USERINCLUDE     ../data         	// For *.rh
-USERINCLUDE     ../../../inc 		// for gsrfsplugin.loc
- 
-
-//System include paths
-APP_LAYER_SYSTEMINCLUDE   /epoc32/include/ecom
-APP_LAYER_SYSTEMINCLUDE   /epoc32/include/cshelp
-
-//System include paths
-MW_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH      ../data
-
-START RESOURCE  10275117.rss
-TARGET          GSRFSPlugin.rsc
-END
-
-START RESOURCE  GSRFSPluginRsc.rss
-TARGETPATH      RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-LIBRARY   euser.lib
-LIBRARY   ecom.lib
-LIBRARY   efsrv.lib
-LIBRARY   avkon.lib
-LIBRARY   bafl.lib 
-LIBRARY   cone.lib 
-LIBRARY   eikcoctl.lib 
-LIBRARY   eikcore.lib 
-LIBRARY   egul.lib
-LIBRARY   ws32.lib
-LIBRARY   rfs.lib
-LIBRARY   gsecomplugin.lib
-LIBRARY   CommonEngine.lib
-LIBRARY   fbscli.lib
-LIBRARY   AknIcon.lib
-LIBRARY   aknskins.lib
-
-LIBRARY   hlplch.lib
-LIBRARY   GSFramework.lib
-LIBRARY   GSListBox.lib
-
-
-DOCUMENT            10275117.rss
-
-// End of File
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/group/GSRFSPluginIcons.mk	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-#
-# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
-
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=\epoc32\data\z
-endif
-
-# ----------------------------------------------------------------------------
-# Configure these
-# ----------------------------------------------------------------------------
-
-TARGETDIR=$(ZDIR)\resource\apps
-HEADERDIR=\epoc32\include
-ICONTARGETFILENAME=$(TARGETDIR)\GSRFSPlugin.mif
-HEADERFILENAME=$(HEADERDIR)\GSRFSPlugin.mbg
-
-do_nothing :
-	@rem do_nothing
-
-MAKMAKE : do_nothing
-
-BLD : do_nothing
-
-CLEAN : do_nothing
-
-LIB : do_nothing
-
-CLEANLIB : do_nothing
-
-# ----------------------------------------------------------------------------
-# Configure these.
-#
-# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatiNetworky by
-# MifConv if the mask detph is defined.
-#
-# NOTE 2: Usually, source paths should not be included in the bitmap
-# definitions. MifConv searches for the icons in all icon directories in a
-# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
-# The directory \s60\icons is included in the search only if the feature flag
-# __SCALABLE_ICONS is defined.
-# ----------------------------------------------------------------------------
-
-RESOURCE :
-	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
-		/c8,8 qgn_prop_set_gene_phone.bmp
-
-FREEZE : do_nothing
-
-SAVESPACE : do_nothing
-
-RELEASABLES :
-	@echo $(HEADERFILENAME)&& \
-	@echo $(ICONTARGETFILENAME)
-
-FINAL : do_nothing
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  This file provides the information required for building
-*                GS RFS Plugin.
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-../loc/gsrfsplugin.loc             MW_LAYER_LOC_EXPORT_PATH(gsrfsplugin.loc)
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
-  OPTION TARGETFILE GSRFSPlugin.mif
-  OPTION HEADERFILE GSRFSPlugin.mbg
-  OPTION SOURCES -c8,8 qgn_prop_set_gene_phone
-END
-
-
-PRJ_MMPFILES
-//gnumakefile GSRFSPluginIcons.mk
-GSRFSPlugin.mmp
-
-//  End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/GSRFSPlugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  GS Restore Factory Settings plugin
-*
-*/
-
-
-#ifndef GSRFSPLUGIN_H
-#define GSRFSPLUGIN_H
-
-// Includes
-#include <aknsettingpage.h>
-#include <gsbaseview.h>
-#include <ConeResLoader.h>
-#include <gsplugininterface.h>
-
-// Classes referenced
-class CRfsHandler;
-class CGSRFSPluginContainer;
-class CAknViewAppUi;
-
-// Constants
-const TUid KGSRFSPluginUid = { 0x10275117 };
-  
-
-// Class Declaration
-/**
- *
- * @since Series60_3.1
- */
-class CGSRFSPlugin : public CGSBaseView
-    {
-public: // Constructors and destructor
-        
-    /**
-     * Symbian OS two-phased constructor
-     * @return 
-     */
-    static CGSRFSPlugin* NewL( TAny* aInitParams );
-    
-    /**
-     * Destructor.
-     */
-     ~CGSRFSPlugin();
-
-public: // From CAknView
-                
-     /**
-      * See base class.
-      *
-      * This function is used also for identifying the plugin so be sure to
-      * return correct UID.
-      */
-     TUid Id() const;
-        
-     /**
-      * See base class.
-      */
-     void HandleClientRectChange();
-        
-     /**
-      * See base class.
-      */
-     void DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage );
-        
-     /**
-      * See base class.
-      */
-     void DoDeactivate();
-        
-     /**
-      * See base class.
-      */
-     void HandleCommandL( TInt aCommand );
-        
-
-public: // From CGSPluginInterface
-       
-     /**
-      * See base class.
-      */
-     void GetCaptionL( TDes& aCaption ) const;
-        
-     /**
-      * See base class.
-      */
-     TInt PluginProviderCategory() const;
-
-     /**
-      * See base class.
-      */
-     CGulIcon* CreateIconL( const TUid aIconType );
-        
-protected: // New
-
-     /**
-      * C++ default constructor.
-      */
-     CGSRFSPlugin();
-
-     /**
-      * Symbian OS default constructor.
-      */
-     void ConstructL();
-        
-     void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-        
-private: // from CGSBaseView
-        
-     void NewContainerL();
-        
-     void HandleListBoxSelectionL();    
-        
-private: // Data
-
-     // Resource loader
-     RConeResourceLoader iResourceLoader;
-    };
-
-#endif // GSRFSPLUGIN_H
-
-// End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/GSRFSPluginContainer.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef GSRFSPLUGINCONTAINER_H
-#define GSRFSPLUGINCONTAINER_H
-
-// INCLUDES
-#include <gsbasecontainer.h>
-#include "gssettingid.h"
-
-// CLASS DECLARATION
-class CGSRFSPlugin;
-class CGSListBoxItemTextArray;
-
-
-class CGSRFSPluginContainer : public CGSBaseContainer
-    {
-public: 
-        
-    /**
-     *  C++ default constructor.
-     */
-    CGSRFSPluginContainer( CGSRFSPlugin* aGSRFSPlugin );
-
-    /**
-     * By default Symbian OS constructor is private.
-     */
-    void ConstructL(const TRect& aRect);
-
-    /**
-     * Destructor.
-     */
-    ~CGSRFSPluginContainer();
-        
-public: // new methods
-        
-    TInt CurrentFeatureId() const;
-
-protected: // from CGSBaseContainer
-    
-    void ConstructListBoxL( TInt aResLbxId );
-    
-private: // from CCoeControl    
-        
-    void GetHelpContext( TCoeHelpContext& aContext ) const;
-
-private: // data
-
-    CGSRFSPlugin* iGSRFSPlugin;                 // not own    
-    CGSListBoxItemTextArray* iListboxItemArray;
-    };
-
-
-#endif  // GSRFSPLUGINCONTAINER_H
-
-// End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/GSRFSPluginTraces.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Includes some common defines used in the startup application
-*
-*/
-
-
-#ifndef STARTUPDEFINES_H
-#define STARTUPDEFINES_H
-
-//CONSTANTS
-_LIT( KAppName, "GSRFSPlugin" );           // The application name
-
-// MACROS
-
-#define PANIC(aPanic) User::Panic( KAppName, aPanic )
-
-#define TRACE_ADDPREFIX(aText) (TPtrC((const TText *)L"GSRFSPlugin: \"" L##aText L"\""))
-
-#ifdef _DEBUG
-#define TRACES(aMsg) RDebug::Print( TRACE_ADDPREFIX(aMsg) )
-#define TRACES1(aFormat,aP1) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1) )
-#define TRACES2(aFormat,aP1,aP2) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2) )
-#define TRACES3(aFormat,aP1,aP2,aP3) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2),(aP3) )
-#else
-#define TRACES(aMsg)
-#define TRACES1(aFormat,aP1)
-#define TRACES2(aFormat,aP1,aP2)
-#define TRACES3(aFormat,aP1,aP2,aP3)
-#endif
-#endif      // STARTUPDEFINES_H
-            
-// End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/gscommonresources.rss	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Common resources for internal GS plugins. This .rss is
-*                 included by other .rss files. This should not be compiled
-                  alone.
-*
-*/
-
-//  RESOURCE IDENTIFIER
-//NAME    GSCR // 4 letter ID
-
-//  INCLUDES
-#include    <gs.loc> // Common localized GS strings
-#include    <gscommon.rh> // Common GS resource structures
-
-#include    <bldvariant.hrh>
-#include    <eikon.rh>
-#include    <eikon.rsg>
-#include    <avkon.rh>
-#include    <avkon.loc>
-
-// CONSTANTS
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_menubar_change_exit
-// GS menu with 'change' and 'exit' items.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_gs_menubar_change_exit
-    {
-    titles =
-        {
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_exit;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_help;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_change;
-            }
-        };
-    }
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_menubar_open_exit
-// GS menu with 'Open' and 'Exit' items.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_gs_menubar_open_exit
-    {
-    titles =
-        {
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_exit;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_help;
-            },
-        MENU_TITLE
-            {
-            menu_pane = r_gs_menu_item_open;
-            }
-        };
-    }
-
-//----------------------------------------------------
-//
-// r_gs_menu_item_open
-// Open item.
-//
-//----------------------------------------------------
-
-RESOURCE MENU_PANE r_gs_menu_item_open
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknSoftkeyOpen;
-            txt = qtn_set_options_open;
-            }
-        };
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_menu_item_exit
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_gs_menu_item_exit
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknCmdExit;
-            txt = qtn_options_exit;
-            }
-        };
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_menu_item_change
-// Change item.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_gs_menu_item_change
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EGSCmdAppChange;
-            txt = qtn_set_options_change;
-            }
-        };
-    }
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_menu_item_help
-// Change item.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_gs_menu_item_help
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknCmdHelp;
-            txt = qtn_options_help;
-            }
-        };
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_setting_listbox
-// Common listbox editor resource for setting pages.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE LISTBOX r_setting_listbox
-    {
-    flags = EEikListBoxMultipleSelection;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// r_gs_cba_exit
-// Exit text for RSK
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_gs_cba_exit { buf = text_softkey_exit; }
-
-//End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/inc/gsrfsplugin.hrh	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  GS Restore Factory Settings plugin
-*
-*/
-
-
-#ifndef GSRFSPLUGIN_HRH
-#define GSRFSPLUGIN_HRH
-
-enum TSettingId
-    {
-    EGSSettIdOptNormalRfs,
-    EGSSettIdOptDeepRfs
-    };
-
-#endif //  GSRFSPLUGIN_HRH
-
-//End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/loc/gsrfsplugin.loc	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*	 Localization strings for Plugin
-*
-*/
-
-
-//  LOCALISATION STRINGS
-
-
-//d:Text of a list item in general setting list view's list
-//d:Item restores factory settings
-//l:list_setting_pane_t1
-#define qtn_set_folder_original_settings "Factory settings"
-
-
-//d:displays menu options for reset (full / partial)
-//l:title_pane_t2/opt9
-#define qtn_rfs_title_factory_conf "Factory settings"
-
-
-//d:restores factory settings (normal rfs)
-//l:list_setting_pane_t1 
-#define qtn_rfs_orig_settings "Restore"
-
-
-//d:erases all data (deep rfs)
-//l:list_setting_pane_t1 
-#define qtn_rfs_erase_all_data "Delete data and restore"
-
-
-// End of File
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/src/GSRFSPlugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*        GS RFS Plugin
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <aknViewAppUi.h>
-#include <bautils.h>
-#include <rfsHandler.h>
-#include <gsprivatepluginproviderids.h>
-#include <StringLoader.h>
-#include <GSRFSPluginRsc.rsg>
-#include <GSRFSPlugin.mbg>
-
-#include <hlplch.h>             
-#include <gscommon.hrh>
-#include <gsfwviewuids.h>
-#include "GSRFSPlugin.h"
-#include "GSRFSPluginTraces.h"
-#include "GSRFSPluginContainer.h"
-#include "gsrfsplugin.hrh"
-
-// Constants
-_LIT( KGSRFSPluginResourceFileName, "z:GSRFSPluginRsc.rsc" );
-
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::CGSRFSPlugin()
-// Constructor
-// ---------------------------------------------------------------------------
-CGSRFSPlugin::CGSRFSPlugin()
-    :iResourceLoader( *iCoeEnv )
-    {
-    TRACES("CGSRFSPlugin::CGSRFSPlugin()");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::~CGSRFSPlugin()
-// Destructor
-// ---------------------------------------------------------------------------
-CGSRFSPlugin::~CGSRFSPlugin()
-    {
-    TRACES("CGSRFSPlugin::~CGSRFSPlugin()");
-	  iResourceLoader.Close();
-    TRACES("CGSRFSPlugin::~CGSRFSPlugin(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::ConstructL(const TRect& aRect)
-// Symbian OS two-phased constructor
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::ConstructL()
-    {
-    TRACES("CGSRFSPlugin::ConstructL()");
-    
-    // Find the resource file
-    TParse parse;
-    parse.Set( KGSRFSPluginResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
-    TFileName fileName( parse.FullName() );
-    
-    // Get language of resource file
-    BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
-
-    // Open resource file
-    iResourceLoader.OpenL( fileName );
-
-    BaseConstructL( R_RFS_FACTORY_SETTINGS_VIEW );
-
-    TRACES("CGSRFSPlugin::ConstructL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::NewL()
-// Static constructor
-// ---------------------------------------------------------------------------
-CGSRFSPlugin* CGSRFSPlugin::NewL( TAny* /*aInitParams*/ )
-    {
-    TRACES("CGSRFSPlugin::NewL()");
-    CGSRFSPlugin* self = new( ELeave ) CGSRFSPlugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACES("CGSRFSPlugin::NewL(): End");
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::Id()
-// ---------------------------------------------------------------------------
-TUid CGSRFSPlugin::Id() const
-    {
-    return KGSRFSPluginUid;
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::DoActivateL()
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage )
-    {
-    TRACES("CGSRFSPlugin::DoActivateL()");
-    CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
-    }
-    
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::DoDeactivate()
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::DoDeactivate()
-    {
-    TRACES("CGSRFSPlugin::DoDeactivate()");
-    CGSBaseView::DoDeactivate();
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::HandleCommandL()
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::HandleCommandL( TInt aCommand )
-    {
-    TRACES("CGSRFSPlugin::HandleCommandL()");
-    switch ( aCommand )
-        {
-        case EAknSoftkeyBack:
-            {
-            iAppUi->ActivateLocalViewL( KGSDeviceManagementPluginUid  );
-            break;
-            }
-        case EAknCmdHelp:
-            {
-            HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), iAppUi->AppHelpContextL() );
-            break;
-            }
-        default:
-            {
-            iAppUi->HandleCommandL( aCommand );
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::GetCaptionL()
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::GetCaptionL( TDes& aCaption ) const
-    {
-    // the resource file is already opened
-    HBufC* result = StringLoader::LoadL( R_RFS_FACTORY_SETTINGS );    
-    aCaption.Copy( *result );
-    delete result;
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::PluginProviderCategory()
-// ---------------------------------------------------------------------------
-TInt CGSRFSPlugin::PluginProviderCategory() const
-    {
-    return KGSPluginProviderInternal;
-    }
-
-// -----------------------------------------------------------------------------
-// CGSNetworkPlugin::CreateIconL()
-// -----------------------------------------------------------------------------
-CGulIcon* CGSRFSPlugin::CreateIconL( const TUid aIconType )
-    {
-    CGulIcon* icon;
-    TParse* fp = new( ELeave ) TParse();
-    CleanupStack::PushL( fp );
-    _LIT( KGSRFSPluginIconDirAndName, "z:gsrfsplugin.mbm");
-    fp->Set( KGSRFSPluginIconDirAndName, &KDC_BITMAP_DIR, NULL );
-
-    if( aIconType == KGSIconTypeLbxItem )
-        {
-        icon = AknsUtils::CreateGulIconL( AknsUtils::SkinInstance(), KAknsIIDQgnPropSetGenePhone,
-                                          fp->FullName(),EMbmGsrfspluginQgn_prop_set_gene_phone,
-                                          EMbmGsrfspluginQgn_prop_set_gene_phone_mask );
-        }
-    else
-        {
-        icon = CGSPluginInterface::CreateIconL( aIconType );
-        }
-
-    CleanupStack::PopAndDestroy( fp );
-
-    return icon;
-    }
-
-// -----------------------------------------------------------------------------
-// CGSRFSPlugin::DynInitMenuPaneL()
-//
-// Dynamically handle help item if not supported
-// -----------------------------------------------------------------------------
-void CGSRFSPlugin::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
-    {
-    if( aResourceId == R_GS_MENU_ITEM_HELP )
-        {
-        User::LeaveIfNull( aMenuPane );
-        aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::NewContainerL()
-//
-// Creates new iContainer.
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::NewContainerL()
-    {
-    iContainer = new( ELeave ) CGSRFSPluginContainer( this );
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPlugin::HandleListBoxSelectionL()
-// ---------------------------------------------------------------------------
-void CGSRFSPlugin::HandleListBoxSelectionL()
-    {    
-    CGSRFSPluginContainer *pluginContainer = static_cast<CGSRFSPluginContainer*>( iContainer );
-    const TInt currentFeatureId = pluginContainer->CurrentFeatureId();         
-    
-    CRfsHandler* iRfsHandler = new ( ELeave ) CRfsHandler;
-    CleanupStack :: PushL(iRfsHandler);
-    
-    TRfsType rfsType = ERfsNormal;
-    if ( currentFeatureId == EGSSettIdOptDeepRfs )
-        {
-        rfsType = ERfsDeep;
-        }
-    iRfsHandler->ActivateRfsL( rfsType );
-    
-    CleanupStack :: PopAndDestroy(iRfsHandler);
-    }
-
-// End of file
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/src/GSRFSPluginContainer.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*
-*/
-
-
-//  INCLUDES
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include <AknsFrameBackgroundControlContext.h>
-#include <bldvariant.hrh>
-#include <GSRFSPluginRsc.rsg>
-#include <aknlists.h>
-#include <StringLoader.h>
-#include <csxhelp/cp.hlp.hrh>
-#include <gsfwviewuids.h>
-#include <gslistbox.h>
-#include <settingsinternalcrkeys.h>
-#include "GSRFSPluginContainer.h"
-#include "GSRFSPluginTraces.h"
-#include "GSRFSPlugin.h"
-#include "gsrfsplugin.hrh"
-
-
-// ---------------------------------------------------------
-// CGSRFSPluginContainer::CGSRFSPluginContainer()
-// ---------------------------------------------------------
-CGSRFSPluginContainer::CGSRFSPluginContainer( CGSRFSPlugin* aGSRFSPlugin )
-    :iGSRFSPlugin( aGSRFSPlugin )
-    {
-    TRACES("CGSRFSPluginContainer::CGSRFSPluginContainer()");
-    }
-
-// -----------------------------------------------------------------------------
-// CGSRFSPluginContainer::ConstructL
-//
-// -----------------------------------------------------------------------------
-void CGSRFSPluginContainer::ConstructL(const TRect& aRect)
-    {
-    TRACES("CGSRFSPluginContainer::ConstructL()");
-    
-    iListBox = new( ELeave ) CAknSettingStyleListBox;
-    BaseConstructL( aRect, R_RFS_FACTORY_SETTINGS_TITLE, R_RFS_FACTORY_SETTINGS_LBX );
-    }
-
-// -----------------------------------------------------------------------------
-// CGSRFSPluginContainer::~CGSRFSPluginContainer
-//
-// -----------------------------------------------------------------------------
-CGSRFSPluginContainer::~CGSRFSPluginContainer()
-    {
-    TRACES("CGSRFSPluginContainer::~CGSRFSPluginContainer()");
-    delete iListboxItemArray;
-    TRACES("CGSRFSPluginContainer::~CGSRFSPluginContainer(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPluginContainer::CurrentFeatureId()
-//
-// Return the feature id of selected listitem  
-// ---------------------------------------------------------------------------
-TInt CGSRFSPluginContainer::CurrentFeatureId( ) const
-    {
-    return iListboxItemArray->CurrentFeature( );
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPluginContainer::ConstructListBoxL()
-// 
-// Construct the listbox from resource array.
-// ---------------------------------------------------------------------------
-void CGSRFSPluginContainer::ConstructListBoxL( TInt aResLbxId )
-    {
-    iListBox->ConstructL( this, EAknListBoxSelectionList );
-
-    iListboxItemArray = CGSListBoxItemTextArray::NewL( aResLbxId, *iListBox, *iCoeEnv );
-    
-    iListBox->Model()->SetItemTextArray( iListboxItemArray );
-    iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    }
-
-// ---------------------------------------------------------------------------
-// CGSRFSPluginContainer::GetHelpContext() const
-//  
-// Gets help context 
-// ---------------------------------------------------------------------------
-void CGSRFSPluginContainer::GetHelpContext( TCoeHelpContext& aContext ) const
-    {
-    aContext.iMajor = KUidGS;
-    // TODO: The following statement should be un-commented and assigned with 
-    // the RFS helper text UID once available from concerned team
-    // aContext.iContext = KSET_HLP_WLAN_SETTINGS;
-    }
-
-// End of File  
-
--- a/coreapplicationuis/Rfs/Plugins/GSRFSPlugin/src/GSRFSPluginImplementationTable.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*        ECOM proxy table for this plugin
-*
-*/
-
-
-// System includes
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-#include "GSRFSPluginTraces.h"
-
-// User includes
-#include "GSRFSPlugin.h"
-
-// Constants
-const TImplementationProxy KGSRFSPluginImplementationTable[] = 
-	{
-	IMPLEMENTATION_PROXY_ENTRY( 0x10275118,	CGSRFSPlugin::NewL )
-	};
-
-
-// ---------------------------------------------------------------------------
-// ImplementationGroupProxy
-// Gate/factory function
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
-    TInt& aTableCount )
-	{
-    TRACES("ImplementationGroupProxy()");
-	aTableCount = sizeof( KGSRFSPluginImplementationTable ) 
-        / sizeof( TImplementationProxy );
-    TRACES("ImplementationGroupProxy(): End");
-	return KGSRFSPluginImplementationTable;
-	}
-
-// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/cprfsplugin.pro	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0""
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:  Project file for the RFS Plugin. It creates the bld.inf and .mmp file on executing
+# qmake command.
+#  
+#
+
+TEMPLATE = lib
+TARGET = cprfsplugin
+DEPENDPATH += . inc src
+INCLUDEPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+
+CONFIG += hb\
+           plugin
+           
+MOC_DIR =     moc
+OBJECTS_DIR = obj
+RCC_DIR =     rcc
+
+# Platforms
+SYMBIAN_PLATFORMS = WINSCW \
+                    ARMV5
+
+LIBS += -lcpframework \
+				-lRfs
+# Input
+HEADERS += inc/cprfsplugin.h \
+           inc/cprfssettingsdataformcustomitem.h \
+           inc/cprfssettingsform.h \
+           inc/cprfsview.h
+SOURCES += src/cprfsplugin.cpp \
+           src/cprfssettingsdataformcustomitem.cpp \
+           src/cprfssettingsform.cpp \
+           src/cprfsview.cpp
+
+symbian: { 
+    TARGET.EPOCALLOWDLLDATA = 1
+    DEFINES += PLUGINUID3=0x10275117
+    TARGET.UID3 = 0x10275117    
+}
+symbian { 
+    deploy.path = C:
+    qtplugins.path = /resource/qt/plugins/controlpanel
+    qtplugins.sources += qmakepluginstubs/cprfsplugin.qtplugin    
+    # This is for new exporting system coming in garden
+    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin $$deploy.path$$qtplugins.path/$$basename(qtplugin)"
+}
+# Build.inf rules
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "rom/cprfssettingsplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cprfssettingsplugin.iby)" 
+
+TARGET.CAPABILITY = All -TCB
+plugin.sources = cprfsplugin.dll
+plugin.path = \resource\qt\plugins\controlpanel
+DEPLOYMENT += plugin	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/inc/cprfsplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *   
+ */
+#ifndef	CPRFSPLUGIN_H
+#define	CPRFSPLUGIN_H
+
+#include <qobject.h>
+#include <cppluginplatinterface.h>
+
+class CpRfsPlugin : public QObject, public CpPluginPlatInterface
+{
+Q_OBJECT
+    Q_INTERFACES(CpPluginPlatInterface)
+public:
+    CpRfsPlugin();
+    ~CpRfsPlugin();
+    virtual CpSettingFormItemData *createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
+};
+
+#endif	//CPRFSPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/inc/cprfssettingsdataformcustomitem.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *   
+ */
+
+#ifndef CP_RFS_SETTINGS_DATAFORM_CUSTOMITEM_H
+#define CP_RFS_SETTINGS_DATAFORM_CUSTOMITEM_H
+
+#include <hbdataformviewitem.h>
+
+class CpRfsSettingsDataFormCustomItem : public HbDataFormViewItem
+{
+Q_OBJECT
+
+public:
+    CpRfsSettingsDataFormCustomItem(QGraphicsItem *parent);
+    ~CpRfsSettingsDataFormCustomItem();
+};
+
+#endif // CP_RFS_SETTINGS_DATAFORM_CUSTOMITEM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/inc/cprfssettingsform.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *   
+ */
+
+#ifndef CP_RFS_SETTINGSFORM_H
+#define CP_RFS_SETTINGSFORM_H
+
+#include <hbdataform.h>
+
+class HbDataFormModelItem;
+
+class CpRfsSettingsForm : public HbDataForm
+{
+Q_OBJECT
+public:
+    explicit CpRfsSettingsForm(QGraphicsItem *parent = 0);
+    ~CpRfsSettingsForm();
+private:
+    void initRfsSettingModel();
+    // call these function when activated signal is emitted
+    void activateNormalRfs(HbWidget *widget);
+    void activateDeepRfs(HbWidget *widget);
+    
+private slots:
+    void onItemActivated(const QModelIndex &index);
+    void onPressedNormalRfs();
+    void onPressedDeepRfs();
+
+private:
+
+    //DataForm List Items
+    HbDataFormModelItem *mNormalRfs;
+    HbDataFormModelItem *mDeepRfs;
+
+};
+#endif // CP_RFS_SETTINGSFORM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/inc/cprfsview.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *
+ */
+#ifndef	CPRFSVIEW_H
+#define	CPRFSVIEW_H
+
+#include <cpbasesettingview.h>
+
+class CpRfsView : public CpBaseSettingView
+{
+    Q_OBJECT
+public:
+    explicit CpRfsView(QGraphicsItem *parent = 0);
+    ~CpRfsView();
+};
+
+#endif//	CPRFSVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/rom/cprfssettingsplugin.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *   
+ */
+
+#ifndef __CPRFSSETTINGSPLUGIN_IBY__
+#define __CPRFSSETTINGSPLUGIN_IBY__
+
+#include <bldvariant.hrh>
+file=ABI_DIR\BUILD_DIR\cprfsplugin.dll                  SHARED_LIB_DIR\cprfsplugin.dll
+
+data=\epoc32\data\c\resource\qt\plugins\controlpanel\cprfsplugin.qtplugin   resource\qt\plugins\controlpanel\cprfsplugin.qtplugin
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfsplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Creates the plug-in to the control panel.Creates a setting form 
+ * item data, by which the control panel framework can build a setting form model 
+ *
+ */
+#include "cprfsplugin.h"
+#include "cprfsview.h"
+#include <cpsettingformentryitemdataimpl.h>
+#include <cpitemdatahelper.h>
+
+CpRfsPlugin::CpRfsPlugin()
+    {
+    }
+
+CpRfsPlugin::~CpRfsPlugin()
+    {
+    }
+CpSettingFormItemData *CpRfsPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
+    {
+    return new CpSettingFormEntryItemDataImpl<CpRfsView>(itemDataHelper,tr("Restore Factory Settings"));
+    }
+
+Q_EXPORT_PLUGIN2(cprfsplugin, CpRfsPlugin);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfssettingsdataformcustomitem.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Creates the custom items required for HbDataFormModelItem.
+ *   
+ */
+
+#include <cprfssettingsdataformcustomitem.h>
+#include <hbdataformmodelitem.h>
+#include <hbpushbutton.h>
+
+CpRfsSettingsDataFormCustomItem::CpRfsSettingsDataFormCustomItem(QGraphicsItem *parent) :
+HbDataFormViewItem(parent)
+    {
+    }
+
+CpRfsSettingsDataFormCustomItem::~CpRfsSettingsDataFormCustomItem()
+    {
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfssettingsform.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Creates the view for "Reset" and "Delete Data and Resore" and activates the RFS operation based on the user selection.
+ *   
+ */
+
+#include "cprfssettingsform.h"
+#include "cprfssettingsdataformcustomitem.h"
+
+
+#include <hbdataformmodelitem.h>
+#include <hbdataformmodel.h>
+#include <hbpushbutton.h>
+#include <rfsHandler.h>
+
+CpRfsSettingsForm::CpRfsSettingsForm(QGraphicsItem *parent) :
+    HbDataForm(parent)
+    {
+    this->setHeading(tr("Restore Factory Settings"));
+
+    //initialize the form model
+    initRfsSettingModel();
+
+    connect(this, SIGNAL(activated(QModelIndex)),this, SLOT(onItemActivated(QModelIndex)));
+    }
+
+CpRfsSettingsForm::~CpRfsSettingsForm()
+    {
+    }
+
+void CpRfsSettingsForm::initRfsSettingModel()
+    {
+    HbDataFormModel *model = new HbDataFormModel(0);
+
+		// Create the custom items because HbPushButton cannot be added to the HbDataFormModelItem
+    HbDataFormModelItem::DataItemType customItem = static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase + 1);
+                    
+    mNormalRfs = model->appendDataFormItem(customItem, QString(), model->invisibleRootItem());
+    mNormalRfs->setData(HbDataFormModelItem::KeyRole, tr("Restore"));
+
+    HbDataFormModelItem::DataItemType customItem1 = static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase + 1);
+                    
+    mDeepRfs = model->appendDataFormItem(customItem1, QString(), model->invisibleRootItem());
+    mDeepRfs->setData(HbDataFormModelItem::KeyRole,tr("Delete Data and Restore"));
+
+    this->setModel(model);
+    }
+
+// On Item activated
+void CpRfsSettingsForm::onItemActivated(const QModelIndex &index)
+    {
+    HbDataFormModelItem *itemData = static_cast<HbDataFormModelItem *> (index.internalPointer());
+    // to deal with orbit change temparialy
+    if (itemData->type() > HbDataFormModelItem::GroupPageItem)
+        {
+        //get the widget of setting item
+        HbWidget* widget = this->dataFormViewItem(index)->dataItemContentWidget();
+
+		if (itemData == mNormalRfs)
+            {
+            activateNormalRfs(widget);
+            }
+		if (itemData == mDeepRfs)
+            {
+            activateDeepRfs(widget);
+            }
+        }
+    }
+
+void CpRfsSettingsForm::activateNormalRfs(HbWidget* widget)
+    {
+    HbPushButton *advanced = qobject_cast<HbPushButton *> (widget);
+    
+    if(advanced)
+        {
+        //TODO Issue in DataForm Calling the itemActivated twice
+        disconnect( advanced, SIGNAL(clicked()), this, SLOT(onPressedNormalRfs()) );
+
+        connect( advanced, SIGNAL(clicked()), this, SLOT(onPressedNormalRfs()) );
+        }
+    }
+
+void CpRfsSettingsForm::activateDeepRfs(HbWidget* widget)
+    {
+    HbPushButton *advanced = qobject_cast<HbPushButton *> (widget);
+    
+    if(advanced)
+        {
+        //TODO Issue in DataForm Calling the itemActivated twice
+        disconnect( advanced, SIGNAL(clicked()), this, SLOT(onPressedDeepRfs()) );
+
+        connect( advanced, SIGNAL(clicked()), this, SLOT(onPressedDeepRfs()) );
+        }
+    }
+
+void CpRfsSettingsForm::onPressedNormalRfs()
+    {
+    CRfsHandler* rfsHandler = new ( ELeave ) CRfsHandler;
+    CleanupStack :: PushL(rfsHandler);
+    
+    //activate the Normal RFS
+    rfsHandler->ActivateRfsL( ERfsNormal );
+    
+    CleanupStack :: PopAndDestroy(rfsHandler);
+
+    }
+
+void CpRfsSettingsForm::onPressedDeepRfs()
+    {
+    CRfsHandler* rfsHandler = new ( ELeave ) CRfsHandler;
+    CleanupStack :: PushL(rfsHandler);
+    
+    //activate the Deep RFS
+    rfsHandler->ActivateRfsL( ERfsDeep );
+    
+    CleanupStack :: PopAndDestroy(rfsHandler);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfsview.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Creates the settingForm for RFS plug-in where we can add setting item to the form later.
+ *
+ */
+
+#include "cprfsview.h"
+#include "cprfssettingsform.h"
+
+#include <cpbasesettingview.h>
+#include "cprfssettingsdataformcustomitem.h"
+
+CpRfsView::CpRfsView(QGraphicsItem *parent):
+CpBaseSettingView(0,parent)
+	{
+    CpRfsSettingsForm* settingForm = new CpRfsSettingsForm(this);
+        
+    //custom prototype
+    CpRfsSettingsDataFormCustomItem* customPrototype = new CpRfsSettingsDataFormCustomItem(settingForm);
+    settingForm->setItemPrototype(customPrototype);
+    
+    this->setSettingForm(settingForm);
+	}
+CpRfsView::~CpRfsView()
+    {
+    }
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/Rfs/bmarm/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -23,7 +23,6 @@
 
 PRJ_EXPORTS
 ../loc/rfs.loc                              MW_LAYER_LOC_EXPORT_PATH(rfs.loc)
-../Plugins/GSRFSPlugin/loc/gsrfsplugin.loc  MW_LAYER_LOC_EXPORT_PATH(gsrfsplugin.loc)
 ../rom/rfs.iby                              CORE_MW_LAYER_IBY_EXPORT_PATH(rfs.iby)
 ../rom/rfsResources.iby                     LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(rfsResources.iby)
 ../rom/rfs_variant.iby                      CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(rfs_variant.iby)
@@ -32,12 +31,5 @@
 PRJ_MMPFILES
 rfs.mmp
 rfsMain.mmp
-../Plugins/GSRFSPlugin/group/GSRFSPlugin.mmp
 ../Plugins/rfscustcmd/group/rfscustcmd.mmp
 
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
-  OPTION TARGETFILE GSRFSPlugin.mif
-  OPTION HEADERFILE GSRFSPlugin.mbg
-  OPTION SOURCES -c8,8 qgn_prop_set_gene_phone
-END
--- a/coreapplicationuis/Rfs/group/rfs.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/group/rfs.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -29,6 +29,14 @@
 
 USERINCLUDE ../inc
 
+
+SYSTEMINCLUDE		/epoc32/include/mw/hb/hbwidgets
+
+
+LIBRARY		HbWidgets.lib
+
+
+
 MW_LAYER_SYSTEMINCLUDE
 
 SOURCEPATH ../src
@@ -51,18 +59,17 @@
 LIBRARY euser.lib
 LIBRARY efsrv.lib
 LIBRARY bafl.lib
-LIBRARY avkon.lib
 LIBRARY cone.lib
 LIBRARY etel.lib
 LIBRARY etelmm.lib
-LIBRARY CommonEngine.lib
+LIBRARY commonengine.lib
 LIBRARY sysutil.lib
 LIBRARY hal.lib
 LIBRARY secui.lib
 LIBRARY eikcore.lib
-LIBRARY SysLangUtil.lib
-LIBRARY PlatformEnv.lib  // PathInfo
+LIBRARY syslangutil.lib
+LIBRARY platformenv.lib  // PathInfo
 LIBRARY centralrepository.lib // Central Repository
 LIBRARY starterclient.lib
 LIBRARY ecom.lib
-LIBRARY FeatMgr.lib
+LIBRARY featmgr.lib
--- a/coreapplicationuis/Rfs/group/rfsMain.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/group/rfsMain.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET RfsServer.exe
+TARGET rfsserver.exe
 TARGETTYPE exe
 SOURCEPATH ../src
 VENDORID VID_DEFAULT
--- a/coreapplicationuis/Rfs/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -19,6 +19,7 @@
 #ifndef __RFSPDPOBSERVER_H
 #define __RFSPDPOBSERVER_H
 
+#include <hbdeviceprogressdialogsymbian.h>
 
 enum TRfsConnectionCloseState
     {
@@ -26,7 +27,7 @@
     EPdpConnectionClose // this should be the last enum
     };
 
-NONSHARABLE_CLASS( CRfsConnectionObserver ): CActive
+NONSHARABLE_CLASS( CRfsConnectionObserver ): CActive,public MHbDeviceProgressDialogObserver
     {      
 public:
     
@@ -39,6 +40,11 @@
      * Destructor
      */
     virtual ~CRfsConnectionObserver();
+    
+    void ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian* iDialog);
+                    
+    void ProgressDialogClosed(const CHbDeviceProgressDialogSymbian *  iDialog) ;
+
         
 public:
     /**
@@ -128,9 +134,8 @@
     /**
      * Own: Wait dialog
      */
-    CAknWaitDialog* iWaitDialog;
-    
-    /**
+     CHbDeviceProgressDialogSymbian* iDialog ;
+       /**
      * Own: PDP property
      */
     RProperty iPDPProperty;
@@ -169,6 +174,8 @@
     TBool iIsClosingConnectionsApplicable;
     
     TRfsConnectionCloseState iState;
+    //for synchronous dialog handling
+    CActiveSchedulerWait *iWait;
     };
     
 #endif    //RFSPDPOBSERVER_H
--- a/coreapplicationuis/Rfs/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/rom/rfs.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/rom/rfs.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -21,9 +21,6 @@
 file=ABI_DIR\BUILD_DIR\RFS.DLL                      SHARED_LIB_DIR\RFS.DLL
 file=ABI_DIR\BUILD_DIR\RfsServer.exe                PROGRAMS_DIR\RfsServer.exe
 
-ECOM_PLUGIN(GSRFSPlugin.dll,10275117.rsc)
-SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,GSRFSPlugin)
-
 file=ABI_DIR\BUILD_DIR\rfscustcmd.dll               SHARED_LIB_DIR\rfscustcmd.dll
 
 #endif
--- a/coreapplicationuis/Rfs/rom/rfsResources.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/rom/rfsResources.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -21,5 +21,4 @@
 
 //Resource file(s) for RFS
 data=DATAZ_\RESOURCE_FILES_DIR\Rfs.rsc                                  RESOURCE_FILES_DIR\Rfs.rsc
-data=DATAZ_\RESOURCE_FILES_DIR\GSRFSPluginRsc.RSC                       RESOURCE_FILES_DIR\GSRFSPluginRsc.RSC
 #endif
\ No newline at end of file
--- a/coreapplicationuis/Rfs/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/Rfs/src/rfs.rss	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/src/rfs.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -27,10 +27,7 @@
 #include "rfs.loc"
 #include <eikon.rsg>
 #include <eikon.rh>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.hrh>
-#include <avkon.mbg>
+
 
 // RESOURCE DEFINITIONS 
 
@@ -42,76 +39,12 @@
 
 RESOURCE TBUF r_device_restart { buf = qtn_rfs_note_device_restart; }
 
-// -----------------------------------------------------------------------------
-// R_CONFIRM_RFS
-// -----------------------------------------------------------------------------
 
-RESOURCE DIALOG r_confirm_rfs
-    {
-    flags = EGeneralQueryFlags;
-
-    buttons = R_AVKON_SOFTKEYS_YES_NO__YES;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_CONFIRMATION_QUERY 
-                { 
-                layout = EConfirmationLayout;
-                label = qtn_rfs_restore_query;
-                };
-            }
-        };
-    }
-
-// -----------------------------------------------------------------------------
-// R_CONFIRM_DEEP_RFS
-// -----------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_confirm_deep_rfs
-    {
-    flags = EGeneralQueryFlags;
+RESOURCE TBUF r_confirm_rfs { buf = qtn_rfs_restore_query; }
 
-    buttons = R_AVKON_SOFTKEYS_YES_NO__YES;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_CONFIRMATION_QUERY
-                {
-                layout = EConfirmationLayout;
-                label = qtn_rfs_reset_phone_settings;
-                };
-            }
-        };
-    }
+RESOURCE TBUF r_confirm_deep_rfs { buf = qtn_rfs_reset_phone_settings; }
 
-// -----------------------------------------------------------------------------
-// R_CLOSING_CONNECTIONS
-// -----------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_closing_connections
-    {
-    flags = EAknWaitNoteFlags | EEikDialogFlagWait;
-    buttons = R_AVKON_SOFTKEYS_CANCEL;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtNote;
-            id = EGeneralNote;
-            control = AVKON_NOTE
-                {
-                layout = EWaitLayout;
-                singular_label = qtn_rfs_note_closing_connections;
-                animation = R_QGN_GRAF_WAIT_BAR_ANIM;
-                };
-            }
-        };
-    }
+RESOURCE TBUF r_closing_connections { buf = qtn_rfs_note_closing_connections; }
+
 
 // End of File
--- a/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -20,12 +20,12 @@
 // SYSTEM INCLUDES
 #include <rfs.rsg>                      
 #include <PSVariables.h>
-#include <AknWaitDialog.h>
 #include <featmgr.h>
+#include <eikenv.h>  
 #include <centralrepository.h>
-#include <AknWaitDialog.h>
 #include <pdpcontextmanagerpskeys.h>
 #include <pdpcontextmanagerinternalcrkeys.h>
+#include <StringLoader.h> 
 
 // P&S KEYS FROM SIP & PDP CONNECTION
 #include <e32property.h>
@@ -111,12 +111,12 @@
     // proceed further to create a common dialog. This will be a wait for dialog which will be 
     // of synchrnous type and can only be closed inside the RunL() of this active class.
     // Provisions needed to be added to know whether this dialog needs resetting the pointer,
-    // this will be the case when dialog is actually started using 'ExecuteLD()', 
+    // this will be the case when dialog is actually started using 'showl()', 
     // Otherwise we need to delete this dialog and reset the pointer to NULL.
-    if (iIsDialogNeedToBeDisplayed)
-        {
-        iWaitDialog = new( ELeave ) CAknWaitDialog(reinterpret_cast<CEikDialog**>( &iWaitDialog ) );
-        }
+   if (iIsDialogNeedToBeDisplayed)
+       {
+       iDialog = CHbDeviceProgressDialogSymbian::NewL(CHbDeviceProgressDialogSymbian::EWaitDialog);
+       }
    
     // Now we proceed further to setting of the next state i,e, enter the state machine of this active object
     // which will start from closing of the active connections and proceed to close the other connections
@@ -171,6 +171,7 @@
     {
     TRACES("CRfsConnectionObserver::~CRfsConnectionObserver()");
     Cancel();
+    delete iWait;
     TRACES("CRfsConnectionObserver::~CRfsConnectionObserver(): End");
     }
 
@@ -214,31 +215,59 @@
         return EFalse; 
         }
     
-    // we set the flag to indicate ExecuteLD is called and the dialog needs to be
+    // we set the flag to indicate showl is called and the dialog needs to be
     // dismissed from within the RunL()
     iIsWaitForDialogExecuted = ETrue;
     // Start displaying the dialog which will then be closed form the RunL()
     // Here the code execution blocks and we will proceed further only when 
     // this dialog is canceled
-    err = iWaitDialog->ExecuteLD( R_CLOSING_CONNECTIONS );
+
+    HBufC* prompt = StringLoader::LoadLC( R_CLOSING_CONNECTIONS ); 
     
-    
+    iDialog->SetTextL(*prompt);
+             
+    //observer interface is used since showl is aynchronous and we have to have callbacks 
+    //if cancel is pressed or dialog is closed
+    iDialog->SetObserver(this);   
+    iDialog->ShowL();
+    //activeschedulerwait is used since we want synchronous execution and control goes into 
+    //a loop here and returns to start when dialog is cancelled or closed.              
+    iWait = new (ELeave) CActiveSchedulerWait;
+    iWait->Start();
+    delete iWait;
+    iWait=NULL;
+    CleanupStack::PopAndDestroy( prompt );
+              
+    return iAllConnectionClosed;
+     }
+
+void CRfsConnectionObserver::ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian* iDialog)
+{
     // following is the case when the user presses the Cancel button from the wait 
     // for dialog and in that case we need to resend the notificaiton of RFS failed
-    // to whom all we have told previous of this to close the RFS connection
-    if (err == EEikBidCancel)
-        {
-        if (iIsSipInformedForClosingAllConnection)
-            {
-            err = iSIPProperty.Set(KPSSipRfsUid, KSipRfsState, ESipRfsFailed );
-            }
-        if (iIsPDPInformedforClosingAllConnection)
-            {
-            iPDPProperty.Set(KPDPContextManager2,KPDPContextManagerFactorySettingsReset,EPDPContextManagerFactorySettingsResetStop);
-            }
-        }
-    return iAllConnectionClosed;
-    }
+    // to whom all we have told previous of this to close the RFS connection 
+    
+    if (iIsSipInformedForClosingAllConnection)
+                {
+             TInt    err = iSIPProperty.Set(KPSSipRfsUid, KSipRfsState, ESipRfsFailed );
+                }
+    if (iIsPDPInformedforClosingAllConnection)
+                {
+                iPDPProperty.Set(KPDPContextManager2,KPDPContextManagerFactorySettingsReset,EPDPContextManagerFactorySettingsResetStop);
+                }
+       
+                   
+        
+}
+
+
+void CRfsConnectionObserver::ProgressDialogClosed(const CHbDeviceProgressDialogSymbian *  iDialog)
+{
+    //this function is called when the dialog is closed ,note that the control from progressdialogcancelled  
+    //comes to ProgressDialogClosed once dialog is closed
+      iWait->AsyncStop(); //from here the control goes to iWait->start();
+}
+
 
 void CRfsConnectionObserver::ReportRfsCompletionToSip()
     {
@@ -443,22 +472,21 @@
     {
     TRACES("CRfsConnectionObserver::DismissWaitDialog()");
     
-    if ( iWaitDialog && iIsWaitForDialogExecuted)
+    if ( iDialog && iIsWaitForDialogExecuted)
         {
-        TRAP_IGNORE( iWaitDialog->ProcessFinishedL() );
+        iDialog->Close();
         }
     
     // Sanity Check:
     // It can be a case when dialog was need to be displayed but was not due to some error
-    // this means that the 'iWaitDialog' was constructed but never used and destroyed
-    // i.e. the ExecuteLD() was never called
-    else if(iIsDialogNeedToBeDisplayed && !iIsWaitForDialogExecuted)
+    // this means that the 'iDialog' was constructed but never used and destroyed
+    // i.e. the showl() was never called
+   else if(iIsDialogNeedToBeDisplayed && !iIsWaitForDialogExecuted)
         {
-        delete iWaitDialog;
+        delete iDialog;
         }
-    
-    // Reset the pointer to NULL
-    iWaitDialog = NULL;
+      // Reset the pointer to NULL
+    iDialog = NULL;
     
     TRACES("CRfsConnectionObserver::DismissWaitDialog(): End");
     }
--- a/coreapplicationuis/Rfs/src/rfsHandler.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/Rfs/src/rfsHandler.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -39,10 +39,7 @@
 
 #include <secui.h>                  // security UI
 #include <secuisecurityhandler.h>
-
-#include <aknnotewrappers.h>
-#include <AknQueryDialog.h>
-
+#include <StringLoader.h>
 #include <hal.h>
 #include <centralrepository.h>
 #include <CommonEngineDomainCRKeys.h>
@@ -50,16 +47,18 @@
 #include <data_caging_path_literals.hrh>
 
 #include "CleanupResetPointer.h"
-#include <AknWaitDialog.h>
 #include <pdpcontextmanagerpskeys.h>
 #include <pdpcontextmanagerinternalcrkeys.h>
 #include "rfsConnectionObserver.h"
 #include "rfsHandler.h"
 #include "rfsClient.h"
 #include "RfsTraces.h"
+#include <hbdevicemessageboxsymbian.h>
 
 
 _LIT( KRfsResourceFileName, "Z:rfs.rsc");
+_LIT(KYes,"yes");
+_LIT(KNo,"No");
 
 // CONSTANTS
 const TInt KPhoneIndex = 0;
@@ -187,11 +186,18 @@
         if( startersession.Connect() == KErrNone )
             {
 			// Displays information note to the user telling that the device will restart
-            HBufC* prompt = iEnv->AllocReadResourceLC( R_DEVICE_RESTART );
-            CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue );
-            note->ExecuteLD( *prompt );
-            CleanupStack::PopAndDestroy( prompt );
-			
+            HBufC* prompt = StringLoader::LoadLC( R_DEVICE_RESTART );
+                 
+          CHbDeviceMessageBoxSymbian* note = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
+                CleanupStack::PushL(note);
+                note->SetTextL(*prompt);
+                note->ShowL();
+                 CleanupStack::PopAndDestroy(note);
+                CleanupStack::PopAndDestroy( prompt );
+                	
+                	              
+               
+                
             if (aType == ERfsNormal ) startersession.Reset( RStarterSession::ENormalRFSReset );
             else if (aType == ERfsDeep ) startersession.Reset( RStarterSession::EDeepRFSReset );
             else startersession.Reset( RStarterSession::EUnknownReset );
@@ -238,12 +244,9 @@
 EXPORT_C void CRfsHandler::Cancel()
     {
     TRACES("CRfsHandler::Cancel()");
-
-    // delete confirmation query
-    delete iQuery;
-    iQuery = NULL;
-
-    // delete security handler
+    
+     
+     // delete security handler
     if ( iSecurityHandler )
         {
         iSecurityHandler->CancelSecCodeQuery();
@@ -326,32 +329,26 @@
 TBool CRfsHandler::AskConfirmationL( const TBool& aThisDestroyed, TRfsType aType )
     {
     TRACES("CRfsHandler::AskConfirmationL()");
-    CleanupResetPointerPushL( iQuery );
-
-    // Show the confirmation query.
-
-    iQuery = CAknQueryDialog::NewL(); // no tone as default
-
+     
+   
     TInt resourceId = ( aType == ERfsNormal ) ? R_CONFIRM_RFS : R_CONFIRM_DEEP_RFS;
-    //iQuery->SetSize();
-    //iQuery->pref
-    
-    TBool ret = iQuery->ExecuteLD( resourceId );
-
-    if ( aThisDestroyed )
+    HBufC* query = iEnv->AllocReadResourceLC( resourceId );
+         
+   // Show the confirmation query.
+          
+   CHbDeviceMessageBoxSymbian::TButtonId selection = CHbDeviceMessageBoxSymbian::QuestionL(*query, KYes, KNo);
+    TBool ret;    
+    if (selection == CHbDeviceMessageBoxSymbian::EAcceptButton) // user pressed yes
         {
-        // this object was destroyed
-        ret = EFalse;
-        // remove cleanup item
-        CleanupStack::Pop();
+        ret=ETrue;
         }
     else
         {
-        // NULLs iQuery
-        CleanupStack::PopAndDestroy();
-        }
-
-    return ret;
+        ret=EFalse;
+        }  
+    CleanupStack::PopAndDestroy(query);
+    return ret;  
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -441,11 +438,13 @@
         {
         HBufC* prompt = iEnv->AllocReadResourceLC( R_ACTIVE_CALLS );
 
-        CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue );
-
-        note->ExecuteLD( *prompt );
-
-        CleanupStack::PopAndDestroy( prompt );
+           CHbDeviceMessageBoxSymbian* note = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
+                CleanupStack::PushL(note);
+                        note->SetTextL(*prompt);
+                        note->ShowL();
+                         CleanupStack::PopAndDestroy( note );
+                        CleanupStack::PopAndDestroy( prompt );
+               
         return ETrue;
         }
 
--- a/coreapplicationuis/SysAp/Aif/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/CenRep/CoreApplicationUIsPrivateCRKeys.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/CenRep/CoreApplicationUIsPrivateCRKeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/coreapplicationuis/SysAp/CenRep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Data/SysAp.rss	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Data/SysAp.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <eikon.rh>
-#include <sysap.loc>
+#include <SysAp.loc>
 #include <avkon.loc>
 #include <avkon.rsg>
 #include <AiwCommon.rh>
--- a/coreapplicationuis/SysAp/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Group/SysAp.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Group/SysAp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 
 #include <data_caging_paths.hrh>
 #include <platform_paths.hrh>
-TARGET      SysAp.exe
+TARGET      sysap.exe
 TARGETTYPE  exe
 UID         0x0 0x100058F3
 
@@ -48,7 +48,7 @@
 SOURCE SysApEtelNetworkBarObserver.cpp
 SOURCE sysapetelnetworkbargetter.cpp
 
-SOURCE CenRepObservers/sysapcenrepfmtxobserver.cpp
+//SOURCE CenRepObservers/sysapcenrepfmtxobserver.cpp
 SOURCE CenRepObservers/SysApCenRepLogsObserver.cpp
 SOURCE CenRepObservers/SysApCenRepBTObserver.cpp
 SOURCE CenRepObservers/SysApCenRepHacSettingObserver.cpp
@@ -84,7 +84,7 @@
 LIBRARY logcli.lib
 
 SOURCE SysApAccessoryObserver.cpp
-LIBRARY AccClient.lib
+LIBRARY accclient.lib
 
 SOURCE SysApEtelConnector.cpp
 
@@ -180,7 +180,7 @@
 USERINCLUDE        ../CenRep
 USERINCLUDE        ../PubSub
 
-APP_LAYER_SYSTEMINCLUDE // used instead of MW_LAYER_SYSTEMINCLUDE due to dependencies to APP layer
+MW_LAYER_SYSTEMINCLUDE 
 
 LIBRARY euser.lib
 LIBRARY apparc.lib
@@ -193,14 +193,14 @@
 LIBRARY aknnotify.lib
 LIBRARY eiksrvc.lib
 LIBRARY connmon.lib
-LIBRARY DSClient.lib
-LIBRARY ProfileEng.lib
-LIBRARY StarterClient.lib
+LIBRARY dsclient.lib
+LIBRARY profileeng.lib
+LIBRARY starterclient.lib
 LIBRARY centralrepository.lib
-LIBRARY CenRepNotifHandler.lib
-LIBRARY CommonEngine.lib
-LIBRARY ActivityManager.lib
-LIBRARY AknCapServerClient.lib
+LIBRARY cenrepnotifhandler.lib
+LIBRARY commonengine.lib
+LIBRARY activitymanager.lib
+LIBRARY akncapserverclient.lib
 LIBRARY secui.lib
 LIBRARY sssettings.lib
 LIBRARY fbscli.lib
@@ -217,14 +217,14 @@
 LIBRARY MediaClientAudio.lib
 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 LIBRARY hwrmlightclient.lib
-LIBRARY hwrmfmtxclient.lib
+//LIBRARY hwrmfmtxclient.lib
 LIBRARY	remconcoreapi.lib
 LIBRARY	remconinterfacebase.lib
-LIBRARY AknIcon.lib
-LIBRARY CdlEngine.lib
+LIBRARY aknicon.lib
+LIBRARY cdlengine.lib
 
 // POC launching
-LIBRARY ServiceHandler.lib
+LIBRARY servicehandler.lib
 
 LIBRARY ecom.lib
 
@@ -232,7 +232,7 @@
 LIBRARY mediatorclient.lib
 LIBRARY bmpanim.lib
 
-LIBRARY TelephonyAudioRouting.lib
+LIBRARY telephonyaudiorouting.lib
 LIBRARY etelpckt.lib
 
 #ifdef RD_MULTIPLE_DRIVE
--- a/coreapplicationuis/SysAp/Group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -41,11 +41,11 @@
 ../rom/SysAp_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(SysAp_variant.iby)
 ../loc/SysAp.loc MW_LAYER_LOC_EXPORT_PATH(SysAp.loc)
 
-../PubSub/CoreApplicationUIsInternalPSKeys.h |../../../inc/CoreApplicationUIsInternalPSKeys.h
-../PubSub/CoreApplicationUIsPrivatePSKeys.h |../../inc/CoreApplicationUIsPrivatePSKeys.h
-../CenRep/CoreApplicationUIsPrivateCRKeys.h |../../inc/CoreApplicationUIsPrivateCRKeys.h
+../PubSub/CoreApplicationUIsInternalPSKeys.h |../../../inc/coreapplicationuisinternalpskeys.h
+../PubSub/CoreApplicationUIsPrivatePSKeys.h |../../inc/coreapplicationuisprivatepskeys.h
+../CenRep/CoreApplicationUIsPrivateCRKeys.h |../../inc/coreapplicationuisprivatecrkeys.h
 
-../PubSub/CoreApplicationUIsPrivatePSKeys.h |../../../inc/CoreApplicationUIsPrivatePSKeys.h // Illegal export for avoiding breaks
+../PubSub/CoreApplicationUIsPrivatePSKeys.h |../../../inc/coreapplicationuisprivatepskeys.h // Illegal export for avoiding breaks
 
 PRJ_MMPFILES
 //gnumakefile sysap_icons.mk 
--- a/coreapplicationuis/SysAp/Inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Thu Jun 24 13:52:58 2010 +0100
@@ -37,7 +37,7 @@
 #include "MSysApPropertyResponder.h"
 #include "SysApTimer.h"
 #include <e32property.h>
-#include "CoreApplicationUIsPrivateCRKeys.h"
+#include "coreapplicationuisprivatecrkeys.h"
 #include <sysapcallback.h>
 
 #include "SysApAccessoryObserver.h"
@@ -62,7 +62,7 @@
 class CSysApCenRepLightSettingsObserver;
 class CSysApCenRepLogsObserver;
 class CSysApCenRepBtObserver;
-class CSysApCenRepFmTxObserver;
+//class CSysApCenRepFmTxObserver;
 class CSysApCenRepController;
 class CSysApStartupController;
 class CSysApPowerKeyMenuObserver;
@@ -427,7 +427,7 @@
          /**
          * Enable or disable FM transmission 
          */
-         void ChangeFmTxStateL( TBool aEnable );
+//         void ChangeFmTxStateL( TBool aEnable );
 
 #ifndef RD_MULTIPLE_DRIVE
     public: // from MAknMemoryCardDialogObserver
@@ -1441,7 +1441,7 @@
         CSysApCenRepLogsObserver*                iSysApCenRepLogsObserver;
         CSysApCenRepBtObserver*                  iSysApCenRepBtObserver;
         CSysApCenRepHacSettingObserver* iSysApCenRepHacSettingObserver;
-        CSysApCenRepFmTxObserver*      iSysApCenRepFmTxObserver;
+//        CSysApCenRepFmTxObserver*      iSysApCenRepFmTxObserver;
         CSysApCenRepController*                  iSysApCenRepController;
         CSysApStartupController*        iSysApStartupController;
         CSysApConnectionMonitorObserver*	iSysApConnectionMonitorObserver;
@@ -1657,8 +1657,7 @@
      	*/
          TBool IsEncryptionOperationOngoingL() const;
 		 TInt iKeyBoardRepeatCount;
-		 TBool iFlagForRmvMmcFrmShortPwrKey;
-    };
+		     };
 
 #endif      // SYSAPAPPUI_H
 
--- a/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h	Thu Jun 24 13:52:58 2010 +0100
@@ -209,7 +209,7 @@
     * @since S60 3.2
     * @return ETrue if feature is supported
     */ 
-    TBool FmTxSupported() const;
+//    TBool FmTxSupported() const;
 
     /**
     * Returns whether pen is enabled.
@@ -244,7 +244,7 @@
     * @since S60 5.1
     * @return ETrue if feature is supported
     */
-    TBool FmTxRdsTextSupported() const;
+//    TBool FmTxRdsTextSupported() const;
 
 private:
 
@@ -339,7 +339,7 @@
     /**
     * FM TX supported status
     */
-    TBool iFmTxSupported;
+//    TBool iFmTxSupported;
     
     /**
     * Pen enabled status.
@@ -359,7 +359,7 @@
     /**
     * FM TX RDS Text support status.
     */
-    TBool iFmTxRdsTextSupported;
+//    TBool iFmTxRdsTextSupported;
 };
 
 #endif // SYSAPFEATUREMANAGER_H
--- a/coreapplicationuis/SysAp/Inc/SysApPubSubObserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Inc/SysApPubSubObserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -99,7 +99,7 @@
     /**
     * Handle keys under category KPSUidHWRMFmTx
     */
-    void HandleHwrmFmTxCategoryL( const TUint aKey, const TInt aValue );
+//    void HandleHwrmFmTxCategoryL( const TUint aKey, const TInt aValue );
     
     /**
     * Handle keys under category KPSUidDataSynchronizationInternalKeys
@@ -160,11 +160,11 @@
     CSysApSubscriber*   iSimChangedSubscriber;               // KPSSimChanged
 
     // Category KHWRMFmTxStatus
-    CSysApSubscriber*   iFmTxStatusSubscriber;   // KPSUidHWRMFmTx
+//    CSysApSubscriber*   iFmTxStatusSubscriber;   // KPSUidHWRMFmTx
     
-    TInt iPreviousFmTxPSValue;
+//    TInt iPreviousFmTxPSValue;
     
-    CSysApRemConObserver* iFmTxRemConObserver;
+//    CSysApRemConObserver* iFmTxRemConObserver;
     
     // Category KPSUidCoreApplicationUIs
 
--- a/coreapplicationuis/SysAp/Inc/SysApSsSettingsObserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Inc/SysApSsSettingsObserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -24,7 +24,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <MSSSettingsObserver.h>
+#include <msssettingsobserver.h>
 
 // FORWARD DECLARATIONS
 class CSysApAppUi;
--- a/coreapplicationuis/SysAp/PubSub/CoreApplicationUIsPrivatePSKeys.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/PubSub/CoreApplicationUIsPrivatePSKeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -21,7 +21,7 @@
 #define COREAPPLICATIONUISPRIVATEPSKEYS_H
 
 // INCLUDES
-#include "CoreApplicationUIsInternalPSKeys.h"
+#include "coreapplicationuisinternalpskeys.h"
 
 #endif      // COREAPPLICATIONUISPRIVATEPSKEYS_H
 
--- a/coreapplicationuis/SysAp/PubSub/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/Bt/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/BtSap/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/CenRepObservers/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -69,6 +69,12 @@
 
 void CSysApCenRepLogsObserver::ConstructL()
     {
+    const TUid KCRUidLogs = {0x101F874E};
+    /**
+    * Informs the Logs application about the amount of new missed calls.
+    * Integer type
+    **/
+    const TUint32 KLogsNewMissedCalls = 0x00000006;
     TRAPD( err, iSession = CRepository::NewL( KCRUidLogs ) );
     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::ConstructL: err=%d (KCRUidLogs)"), err ) );
     User::LeaveIfError( err );
--- a/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -23,7 +23,7 @@
 #include <e32base.h>
 #include <centralrepository.h>
 #include <cenrepnotifyhandler.h>
-#include <LogsDomainCRKeys.h>
+//#include <LogsDomainCRKeys.h>
 
 // FORWARD DECLARATIONS
 class CSysApAppUi;
--- a/coreapplicationuis/SysAp/Src/CenRepObservers/sysapcenrepfmtxobserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CSysApCenRepFmTxObserver implementation.
- *
-*/
-
-
-// INCLUDE FILES
-#include <centralrepository.h>
-#include <hwrmfmtx.h>
-#include <hwrmfmtxdomaincrkeys.h>
-#include <hwrmfmtxdomainpskeys.h>
-#include "sysapcenrepfmtxobserver.h"
-#include "SysApAppUi.h"
-#include "SysAp.hrh"
-
-// ========================== MEMBER FUNCTIONS ================================
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver* CSysApCenRepFmTxObserver::NewL()
-// ----------------------------------------------------------------------------
-
-CSysApCenRepFmTxObserver* CSysApCenRepFmTxObserver::NewL( CSysApAppUi& aSysApAppUi )
-    {       
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::NewL" ) ) );
-    CSysApCenRepFmTxObserver* self = new ( ELeave ) CSysApCenRepFmTxObserver( aSysApAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::CSysApCenRepFmTxObserver( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApCenRepFmTxObserver::CSysApCenRepFmTxObserver( CSysApAppUi& aSysApAppUi  )
-    : iSysApAppUi( aSysApAppUi ),
-      iSession( NULL ),
-      iFmTxPowerStateHandler( NULL ),
-      iFrequency( 0 )
-    {
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::CSysApCenRepFmTxObserver" ) ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::~CSysApCenRepFmTxObserver()
-// ----------------------------------------------------------------------------
-
-CSysApCenRepFmTxObserver::~CSysApCenRepFmTxObserver()
-    {
-    TRACES( RDebug::Print( _L("~CSysApCenRepFmTxObserver") ) );
-    delete iFmTxPowerStateHandler;
-    delete iSession;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::ConstructL()
-// ----------------------------------------------------------------------------
-
-void CSysApCenRepFmTxObserver::ConstructL()
-    {
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::ConstructL: trying CRepository::NewL( KCRUidBluetoothPowerState )") ) );
-    iSession = CRepository::NewL( KCRUidFmTxCenRes );
-    iFmTxPowerStateHandler = 
-        CCenRepNotifyHandler::NewL( *this, 
-                                    *iSession, 
-                                    CCenRepNotifyHandler::EIntKey, 
-                                    KFmTxCenResKeyFrequency );
-    iFmTxPowerStateHandler->StartListeningL();
-    TInt err = iSession->Get( KFmTxCenResKeyFrequency, iFrequency );
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::ConstructL: err=%d, iFrequency=%d"), err, iFrequency ) );
-    User::LeaveIfError( err );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::HandleNotifyInt()
-// ----------------------------------------------------------------------------
-
-void CSysApCenRepFmTxObserver::HandleNotifyInt( TUint32 aId, TInt aNewValue )
-    {
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::HandleNotifyInt(): aId=%d, aNewValue=%d" ), aId, aNewValue ) );
-    if ( aId == KFmTxCenResKeyFrequency )
-        {
-        iFrequency = aNewValue;
-        TFmTxState state = static_cast<TFmTxState>(iSysApAppUi.StateOfProperty( KPSUidHWRMFmTx, KHWRMFmTxStatus ));
-        switch ( state )
-            {
-            case EFmTxStateActive:
-            case EFmTxStateInactive:
-            case EFmTxStatePowerSaveInactivity:
-            case EFmTxStatePowerSaveAccessory:
-            case EFmTxStateScanning:
-                // show "Tune radio to xx.xx MHz" if FM TX is on
-                TRAPD( err, iSysApAppUi.ShowUiNoteL( EFmTxOnNote ) );
-                if ( err != KErrNone )
-                    {
-                    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::HandleNotifyInt(): err=%d" ), err ) );
-                    }
-                break;
-            
-            default:
-                // do nothing
-                break;
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::HandleNotifyError()
-// ----------------------------------------------------------------------------
-
-void CSysApCenRepFmTxObserver::HandleNotifyError( TUint32 /* aId */, TInt /* error */, CCenRepNotifyHandler* /* aHandler */ )
-    {
-    TRACES( RDebug::Print( _L("CSysApCenRepFmTxObserver::HandleNotifyError()" ) ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApCenRepFmTxObserver::Frequency()  
-// ----------------------------------------------------------------------------
-
-TInt CSysApCenRepFmTxObserver::Frequency() const
-    {
-    return iFrequency;
-    }
-    
-
-// End of File
-
--- a/coreapplicationuis/SysAp/Src/CenRepObservers/sysapcenrepfmtxobserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CSysApCenRepFmTxObserver class definition. 
-*
-*/
-
-
-#ifndef SYSAPCENREPFMTXOBSERVER_H
-#define SYSAPCENREPFMTXOBSERVER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <cenrepnotifyhandler.h>
-
-
-// FORWARD DECLARATIONS
-class CRepository;
-class CSysApAppUi;
-
-// CLASS DECLARATION
-
-/**
-*  CSysApCenRepFmTxObserver
-*
-*  Observer class for FM TX related Central Repository keys.
-*
-*  @lib None.
-*  @since 3.2
-*/
-
-class CSysApCenRepFmTxObserver : public CBase, public MCenRepNotifyHandlerCallback
-    {
-    public: // Constructors and destructor
-        /**
-        * Symbian two-phased constructor.
-        */
-        static CSysApCenRepFmTxObserver* NewL( CSysApAppUi& aSysApAppUi );
-
-        /**
-        * Destructor.
-        */
-        virtual ~CSysApCenRepFmTxObserver();
-
-    private:
-
-        /**
-        * Symbian 2nd-phase constructor.
-        * @param None
-        * @return void
-        */
-        void ConstructL( );
-        
-        /**
-        * Constructor
-        * @param CSysApAppUi& aSysApAppUi
-        * @return void
-        */         
-        CSysApCenRepFmTxObserver( CSysApAppUi& aSysApAppUi );
-    
-        /**
-        * C++ default constructor.
-        * @param None
-        * @return void
-        */
-        CSysApCenRepFmTxObserver();
-        
-    public: // From MCenRepNotifyHandlerCallback
-        void HandleNotifyInt( TUint32 aId, TInt aNewValue );
-        void HandleNotifyError( TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler );
-        
-    public: // Other functions
-        
-        /**
-        * Returns the current frequency
-        *
-        * @return TInt
-        */               
-        TInt Frequency() const;
-
-    private:
-        // By default, prohibit copy constructor
-        CSysApCenRepFmTxObserver( const CSysApCenRepFmTxObserver& );
-    
-        // Prohibit assigment operator
-        CSysApCenRepFmTxObserver& operator= ( const CSysApCenRepFmTxObserver& );
-    
-    private:
-        /**
-        * SysAp application class.
-        */
-        CSysApAppUi& iSysApAppUi;
-        
-        /**
-        * CenRep session for FM TX keys.
-        * Own.
-        */
-        CRepository* iSession;
-        
-        /**
-        * Notify handler for FM TX CenRep key.
-        * Own.
-        */ 
-        CCenRepNotifyHandler* iFmTxPowerStateHandler;
-        
-        /**
-        * Tuned FM TX frequency.
-        */
-        TInt iFrequency;
-    };
-
-#endif      // SYSAPCENREPFMTXOBSERVER_H
-            
-// End of File
--- a/coreapplicationuis/SysAp/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/OfflineModeController/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/PrivacyFramework/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -36,7 +36,7 @@
 #include <hwrmdomainpskeys.h>
 
 #include <PSVariables.h>
-#include "CoreApplicationUIsPrivatePSKeys.h"
+#include "coreapplicationuisprivatepskeys.h"
 #include <ctsydomainpskeys.h>
 #include <startupdomainpskeys.h>
 #include <startupdomaincrkeys.h>
@@ -77,8 +77,8 @@
 #include "SysApCenRepBTObserver.h"
 #include "SysApCenRepHacSettingObserver.h"
 #include "SysApCenRepController.h"
-#include "CoreApplicationUIsPrivateCRKeys.h"
-#include "CoreApplicationUIsPrivatePSKeys.h"
+#include "coreapplicationuisprivatecrkeys.h"
+#include "coreapplicationuisprivatepskeys.h"
 #include <UikonInternalPSKeys.h>
 
 #include "SysApStartupController.h"
@@ -106,16 +106,16 @@
 
 #include "SysApShutdownAnimation.h"
 
-#include <hwrmfmtx.h>
-#include <hwrmfmtxdomainpskeys.h>
-#include <hwrmfmtxdomaincrkeys.h>
-#include "sysapcenrepfmtxobserver.h"
+//#include <hwrmfmtx.h>
+//#include <hwrmfmtxdomainpskeys.h>
+//#include <hwrmfmtxdomaincrkeys.h>
+//#include "sysapcenrepfmtxobserver.h"
 
 #include "SysApKeySndHandler.h"
 
 #include <ir_sock.h> // KIrdaPropertyCategory // KIrdaStatus
 
-#include <NetworkHandlingDomainPSKeys.h>
+#include <networkhandlingdomainpskeys.h>
 
 // POC launching
 #include <AiwServiceHandler.h>
@@ -261,7 +261,7 @@
     BaseConstructL( EAknEnableSkin );
     TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: BaseConstructL() OK") ) );
     
-    iFlagForRmvMmcFrmShortPwrKey = EFalse;
+   
 
     /*SysAp is set as system application (Symbian terminology). This means some special privilege compared
       to other applications. For example it does not get closed when system is asked to close applications
@@ -336,15 +336,16 @@
     TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: trying CSysApCenRepBtObserver::NewL") ) );
     iSysApCenRepBtObserver = CSysApCenRepBtObserver::NewL( *this );
 
-    if ( iSysApFeatureManager->FmTxSupported() )
+/*    if ( iSysApFeatureManager->FmTxSupported() )
         {
         TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: trying CSysApCenRepFmTxObserver::NewL") ) );        
         iSysApCenRepFmTxObserver = CSysApCenRepFmTxObserver::NewL( *this );    
         }
-
+*/
     // Define P&S keys "owned" by SysAp
     RProperty::Define( KPSUidUikon, KUikMMCInserted, RProperty::EInt, KAlwaysPassPolicy, KWriteDeviceDataPolicy );
-    
+    //initially assuming that the memory card is not inserted
+    RProperty::Set( KPSUidUikon, KUikMMCInserted, 0 );
     TDriveInfo driveInfo;
     TInt driveNumber; 
     TInt err;    
@@ -352,7 +353,7 @@
     for ( driveNumber = EDriveD; driveNumber < EDriveZ; driveNumber++ )
          {
 	  err = fileServer.Drive(driveInfo,driveNumber);
-          if(err == KErrNone && driveInfo.iType == EMediaHardDisk &&  driveInfo.iDriveAtt & KDriveAttRemovable)     
+          if(driveNumber == EDriveF && err == KErrNone && driveInfo.iType == EMediaHardDisk &&  driveInfo.iDriveAtt & KDriveAttRemovable)     
         	{     
         	TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: err = %d, driveInfo.iType = %d, driveInfo.iDriveAtt %d, KDriveAttRemovable = %d "),err,driveInfo.iType,driveInfo.iDriveAtt,KDriveAttRemovable) );     
         	RProperty::Set( KPSUidUikon, KUikMMCInserted, 1 );
@@ -1211,7 +1212,7 @@
     delete iSysApCenRepLightSettingsObserver;
     delete iSysApCenRepLogsObserver;
     delete iSysApCenRepBtObserver;
-    delete iSysApCenRepFmTxObserver;
+//    delete iSysApCenRepFmTxObserver;
     delete iSysApCenRepHacSettingObserver;
     delete iSysApCenRepController;
 
@@ -1318,7 +1319,7 @@
             tone = EAvkonSIDInformationTone;
             secondaryDisplayId = SecondaryDisplay::ECmdShowKeypadActiveNote;
             break;
-        case EFmTxAccessoryStandbyNote:
+/*        case EFmTxAccessoryStandbyNote:
             noteType = EAknGlobalInformationNote; 
             tone = EAvkonSIDInformationTone;
             secondaryDisplayId = SecondaryDisplay::ECmdShowFmTxStandbyInAccessoryConnectionNote;
@@ -1343,7 +1344,7 @@
             tone = EAvkonSIDInformationTone;
             secondaryDisplayId = SecondaryDisplay::ECmdShowFmTxDisabledNote;
             break;
-        case EBatteryFullUnplugChargerNote:
+*/        case EBatteryFullUnplugChargerNote:
             noteType = EAknGlobalBatteryFullUnplugNote;
             tone = EAvkonSIDInformationTone;
             break;
@@ -1419,7 +1420,7 @@
                     }
                 note->SetAnimation( R_QGN_NOTE_KEYGUARD_OPEN_ANIM );
                 break;
-            case EFmTxOnNote:
+/*            case EFmTxOnNote:
                 {
                 const TInt KFrequencyMaxLength(7);
                 // read frequency
@@ -1458,7 +1459,7 @@
                                                        iEikonEnv );
                 break;
                 }
-            case EPowerSaveModeActivated:
+*/            case EPowerSaveModeActivated:
                 noteStringBuf = StringLoader::LoadLC( R_QTN_POWER_SAVING_ACTIVATED_CONF_NOTE, iEikonEnv );
                 break;
             case EPowerSaveModeDeactivated:
@@ -1477,7 +1478,7 @@
         note->SetTone( tone );
 
         // Set secondary display data if necessary
-        if ( iSysApFeatureManager->CoverDisplaySupported() && secondaryDisplayId != SecondaryDisplay::ECmdNoNote)
+/*        if ( iSysApFeatureManager->CoverDisplaySupported() && secondaryDisplayId != SecondaryDisplay::ECmdNoNote)
             {
             TRACES( RDebug::Print( _L("CSysApAppUi::ShowUiNoteL - Notifying secondary display") ) );
             CAknSDData* sd;
@@ -1494,7 +1495,7 @@
              
             note->SetSecondaryDisplayData(sd); // ownership to notifier client
             }
-
+*/
         if ( noteStringBuf )
             {
             TPtr textBuffer = noteStringBuf->Des();
@@ -2192,7 +2193,7 @@
 // ----------------------------------------------------------------------------
 void CSysApAppUi::SwitchFromOnlineToOfflineModeL()
     {
-    if ( iSysApFeatureManager->FmTxSupported() )
+/*    if ( iSysApFeatureManager->FmTxSupported() )
         {
         TFmTxState state = static_cast<TFmTxState>(StateOfProperty( KPSUidHWRMFmTx, KHWRMFmTxStatus ));
         switch ( state )
@@ -2208,7 +2209,7 @@
                 break;                
             }
         }
-    iSysApOfflineModeController->SwitchFromOnlineToOfflineModeL();
+*/    iSysApOfflineModeController->SwitchFromOnlineToOfflineModeL();
     }
 
 // ----------------------------------------------------------------------------
@@ -2289,7 +2290,7 @@
     {
     return iDeviceLockEnabled;
     }
-
+/*
 // ----------------------------------------------------------------------------
 // CSysApAppUi::ChangeFmTxStateL()
 // ----------------------------------------------------------------------------     
@@ -2307,6 +2308,7 @@
        }
     CleanupStack::PopAndDestroy( fmtx );
     } 
+*/
 
 // ----------------------------------------------------------------------------
 // CSysApAppUi::SetIhfIndicatorL()
@@ -3897,7 +3899,6 @@
                 _L( "CSysApAppUi::PowerKeyPopUpMenuSelectionDoneL: \"Eject\" selected, drive=%d" ),
                 iDriveToEject ) );
             iSysApDriveList->ResetDrivesToEject();
-            iFlagForRmvMmcFrmShortPwrKey = ETrue;
             RProperty::Set( KPSUidUikon, KUikMMCInserted, 0 );
             EjectMMCL();
             }
@@ -4671,6 +4672,25 @@
         }
     }
 
+/**
+ * To check the for an emergency call. 
+ * 
+ * @return ETrue if there is an emergency call active otherwise, EFalse.
+ */
+TBool IsEmergencyCall()
+        {
+        TBool retVal( EFalse );
+        TInt err( KErrNone );
+        TInt state( 0 );
+     
+        err = RProperty::Get(KPSUidCtsyEmergencyCallInfo, KCTSYEmergencyCallInfo, state );
+        if ( err == KErrNone && state )
+            {
+            retVal = ETrue;            
+            }
+        return retVal;
+        }	
+
 // ----------------------------------------------------------------------------
 // CSysApAppUi::HandleCurrentCallStateChangeL()
 // ----------------------------------------------------------------------------
@@ -4687,8 +4707,9 @@
     switch ( aCurrentCallState )
         {
         case EPSCTsyCallStateRinging:
+            {
             iSysApLightsController->CallComingInL( ETrue );
-            // disable keylock when a call is coming in
+            // Disable keylock when a call is coming in
             if ( iKeyLockEnabled || iDeviceLockEnabled || iKeyLockOnBeforeCradle || iKeyLockOnBeforeAlarm )
                 {
                 TRACES( RDebug::Print( _L("CSysApAppUi::HandleCurrentCallStateChangeL: EPSCTsyCallStateRinging: disable keylock") ) );
@@ -4703,24 +4724,29 @@
                     }
                 }
             break;
-
+            }
+            
         case EPSCTsyCallStateDialling:
-            // disable keylock during an emergency call
+            {
+            // Disable keypad lock during an emergency call
+            // no need to disable the key lock when a call is made using the wireless car-kit
+            // but if the call is an emergency one then we will disable the keypad lock
             if ( iKeyLockEnabled || iDeviceLockEnabled || iKeyLockOnBeforeCradle )
                 {
                 TRACES( RDebug::Print( _L("CSysApAppUi::HandleCurrentCallStateChangeL: EPSCTsyCallStateDialling: disable keylock") ) );
                 iKeyLockOnBeforeCall = ETrue;
 
-                if ( iKeyLockEnabled || iDeviceLockEnabled )
+                if ( IsEmergencyCall() && (iKeyLockEnabled || iDeviceLockEnabled ))
                     {
                     KeyLock().DisableWithoutNote();
                     }
                 }
 
-            // enable signal & network indicators when an emergency call is made in Offline Mode
+            // Enable signal & network indicators when an emergency call is made in Offline Mode
             if( iSysApOfflineModeController->OfflineModeActive() )
                     {
-                    if ( StateOfProperty(KPSUidCtsyCallInformation, KCTsyCallType) != EPSCTsyCallTypeVoIP) // signal indicators not updated with VoIP call
+                    // Signal indicators not updated with VoIP call
+                    if ( StateOfProperty(KPSUidCtsyCallInformation, KCTsyCallType) != EPSCTsyCallTypeVoIP) 
                         {
                         iEmergencyCallActive = ETrue;
                         UpdateSignalBarsL();
@@ -4728,11 +4754,13 @@
                         }
                     }
             break;
-
+            }
+            
         case EPSCTsyCallStateConnected:
+            {
             if (StateOfProperty(KPSUidCtsyCallInformation, KCTsyCallType) == EPSCTsyCallTypeCSVoice)
                 {
-                // check if GPRS suspended note is required
+                // Check if GPRS suspended note is required
                 iCallActivated = ETrue;
                 HandleGprsNotesL();
                 }
@@ -4743,9 +4771,11 @@
                 KeyLock().EnableAutoLockEmulation();
                 }
             break;
+            }
 
         case EPSCTsyCallStateNone:
-            // reset timers in ScreenSaver and Autolock
+            {
+            // Reset timers in ScreenSaver and Autolock
             User::ResetInactivityTime();
 
             if ( iEmergencyCallActive )
@@ -4785,6 +4815,8 @@
                 }
             iCallActivated = EFalse;
             break;
+            }
+            
         default:
             break;
         }
@@ -5386,12 +5418,8 @@
                     {
                     if ( memoryCardStatus == ESysApMemoryCardInserted )
                         {
-                        if(!iFlagForRmvMmcFrmShortPwrKey)
-                        	{
-                        	RProperty::Set( KPSUidUikon, KUikMMCInserted, 1 );
-                      		}
-                      		iFlagForRmvMmcFrmShortPwrKey = EFalse;
-                        }
+                         RProperty::Set( KPSUidUikon, KUikMMCInserted, 1 );
+                      	}
                     else
                         {
                         RProperty::Set( KPSUidUikon, KUikMMCInserted, 0 );
--- a/coreapplicationuis/SysAp/Src/SysApCenRepController.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApCenRepController.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #include "SysApCenRepController.h"
 #include "SysApAppUi.h"
 #include "SysAp.hrh"
-#include "CoreApplicationUIsPrivateCRKeys.h"
+#include "coreapplicationuisprivatecrkeys.h"
 #include "accessoriescrkeys.h"
 
 
--- a/coreapplicationuis/SysAp/Src/SysApConfirmationQuery.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApConfirmationQuery.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -181,14 +181,14 @@
                 anim = R_QGN_NOTE_INFO_ANIM;
                 secondaryDisplayCmdId = SecondaryDisplay::ECmdShowMemoryCardLockedQuery;
                 break;
-            case ESysApUseFmTxInOfflineQuery:
+/*            case ESysApUseFmTxInOfflineQuery:
                  queryStringBuf 
                      = StringLoader::LoadLC( R_QTN_FMTX_SYSAP_NOTE_ACTIVATE_IN_OFFLINE,
                                              aLoaderEnv );
                  keys = R_AVKON_SOFTKEYS_YES_NO;
                  secondaryDisplayCmdId = SecondaryDisplay::ECmdShowFmTxKeepOnInOfflineQuery;
                  break;
-            case ESysApBattChargingPowerSavingQuery:
+*/            case ESysApBattChargingPowerSavingQuery:
                 queryStringBuf = StringLoader::LoadLC( R_QTN_BATTERY_CHARGING_POWER_SAVING_QUERY, aLoaderEnv );
                 keys = R_AVKON_SOFTKEYS_YES_NO;
                 secondaryDisplayCmdId = SecondaryDisplay::ECmdShowChargingDeactivatePowerSavingQuery;
@@ -325,14 +325,14 @@
                 ShowQueryL( iPendingQuery, CCoeEnv::Static() );
                 }
             break;
-         case ESysApUseFmTxInOfflineQuery:
+/*         case ESysApUseFmTxInOfflineQuery:
              if ( iStatus.Int() == EAknSoftkeyNo )
                  {
                  TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::ChangeFmTxStateL( EFalse )" ) ) );
                  iSysApAppUi.ChangeFmTxStateL( EFalse ); // disable FM TX
                  }
              break;
-         case ESysApBattChargingPowerSavingQuery:
+*/         case ESysApBattChargingPowerSavingQuery:
             iSysApAppUi.HandleDeactivatePsmQueryResponse( iStatus.Int() == EAknSoftkeyYes );
             break;
             
--- a/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -23,7 +23,7 @@
 #include "SysApFeatureManager.h"
 #include "SysAp.hrh"
 #include <centralrepository.h>
-#include "CoreApplicationUIsPrivateCRKeys.h"
+#include "coreapplicationuisprivatecrkeys.h"
 #include <hwrmlight.h>
 #include <AknUtils.h>
 
@@ -93,8 +93,8 @@
     iNoPowerKeySupported = FeatureManager::FeatureSupported( KFeatureIdNoPowerkey );
     TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: No power key supported=%d"), iNoPowerKeySupported ) );
     
-    iFmTxSupported = FeatureManager::FeatureSupported( KFeatureIdFmtx );
-    TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: FM TX supported=%d"), iFmTxSupported ) );
+//    iFmTxSupported = FeatureManager::FeatureSupported( KFeatureIdFmtx );
+ //   TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: FM TX supported=%d"), iFmTxSupported ) );
 
     iPenEnabled = AknLayoutUtils::PenEnabled();
     TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: Pen enabled=%d"), iPenEnabled ) );
@@ -105,8 +105,8 @@
     iTouchUnlockStrokeSupported = FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke );
     TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: Touch unlock stroke supported=%d"), iTouchUnlockStrokeSupported ) );
     
-    iFmTxRdsTextSupported = FeatureManager::FeatureSupported( KFeatureIdFfFmtxRdsText );
-    TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: FM TX RDS-TEXT supported=%d"), iFmTxRdsTextSupported ) );
+//    iFmTxRdsTextSupported = FeatureManager::FeatureSupported( KFeatureIdFfFmtxRdsText );
+//    TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: FM TX RDS-TEXT supported=%d"), iFmTxRdsTextSupported ) );
     
     CRepository* repository = NULL;
     
@@ -180,11 +180,11 @@
                                                iGripNotSupported( ETrue ),
                                                iPowerSaveSupported( EFalse ),
                                                iNoPowerKeySupported( EFalse ),
-                                               iFmTxSupported( EFalse ),
+//                                               iFmTxSupported( EFalse ),
                                                iPenEnabled( EFalse ),
                                                iVmbxCallDivertIconSupported( EFalse ),
-                                               iTouchUnlockStrokeSupported( EFalse ),
-                                               iFmTxRdsTextSupported( EFalse )
+                                               iTouchUnlockStrokeSupported( EFalse )
+//                                               iFmTxRdsTextSupported( EFalse )
 
     {
     }
@@ -369,7 +369,7 @@
     {
     return iNoPowerKeySupported;
     }
-
+/*
 // ----------------------------------------------------------------------------
 // CSysApFeatureManager::FmTxSupported()
 // ----------------------------------------------------------------------------
@@ -378,7 +378,7 @@
     {
     return iFmTxSupported;
     }
-
+*/
 // ----------------------------------------------------------------------------
 // CSysApFeatureManager::PenEnabled()
 // ----------------------------------------------------------------------------
@@ -405,7 +405,7 @@
     {
     return iTouchUnlockStrokeSupported;
     }
-
+/*
 // ----------------------------------------------------------------------------
 // CSysApFeatureManager::FmTxRdsTextSupported()
 // ----------------------------------------------------------------------------
@@ -414,7 +414,7 @@
     {
     return iFmTxRdsTextSupported;
     }
-
+*/
 // End of File
 
 
--- a/coreapplicationuis/SysAp/Src/SysApLightsController.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApLightsController.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #include <activitymanager.h>
 #include "SysApLightsController.h"
 #include "SysApAppUi.h"
-#include "CoreApplicationUIsInternalPSKeys.h"
+#include "coreapplicationuisinternalpskeys.h"
 #include <e32svr.h>
 #include <hwrmdomainpskeys.h>
 #include "SysApFeatureManager.h"
--- a/coreapplicationuis/SysAp/Src/SysApNspsAnim.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApNspsAnim.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 // INCLUDE FILES
 #include "SysApNspsAnim.h"              // This
 #include <coecntrl.h>                   // CCoeControl
-#include "NspsWsPluginDllStd.h"         // Command
+#include "nspswsplugindllstd.h"         // Command
 
 // ============================ MEMBER FUNCTIONS ==============================
 
--- a/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #include <e32property.h>
 #include <sacls.h>
 #include <startupdomainpskeys.h>
-#include "CoreApplicationUIsPrivatePSKeys.h"
+#include "coreapplicationuisprivatepskeys.h"
 #include <ctsydomainpskeys.h>
 #include <wlaninternalpskeys.h>
 #include <connect/sbdefs.h>
@@ -30,11 +30,11 @@
 #include "SysApAppUi.h"
 #include "SysApFeatureManager.h"
 #include <ir_sock.h>
-#include <NetworkHandlingDomainPSKeys.h>
+#include <networkhandlingdomainpskeys.h>
 #include <hwrmdomainpskeys.h>
 #include <DataSyncInternalPSKeys.h>
-#include <hwrmfmtxdomainpskeys.h>
-#include <hwrmfmtx.h>
+//#include <hwrmfmtxdomainpskeys.h>
+//#include <hwrmfmtx.h>
 #include "sysapremconobserver.h"
 #include <lbs/locationfwdomainpskeys.h>
 #include <smsuaddr.h>
@@ -166,14 +166,14 @@
     iFlipStatusSubscriber = CSysApSubscriber::NewL( *this, KPSUidHWRM, KHWRMFlipStatus );
     iFlipStatusSubscriber->Subscribe();
     
-    if ( iSysApAppUi.SysApFeatureManager().FmTxSupported() )
+/*    if ( iSysApAppUi.SysApFeatureManager().FmTxSupported() )
         {
         // Category KHWRMFmTxStatus
         iFmTxStatusSubscriber = CSysApSubscriber::NewL( *this, KPSUidHWRMFmTx, KHWRMFmTxStatus );
         iFmTxStatusSubscriber->Subscribe();
         iPreviousFmTxPSValue = EFmTxStateUnknown;    
         }
-
+*/
     iSyncStatusSubscriber = CSysApSubscriber::NewL( *this, KPSUidDataSynchronizationInternalKeys, KDataSyncStatus );
     iSyncStatusSubscriber->Subscribe();
     
@@ -230,8 +230,8 @@
     delete iNetworkModeSubscriber;
     delete iWlanIndicatorSubscriber;
     delete iFlipStatusSubscriber;
-    delete iFmTxStatusSubscriber;
-    delete iFmTxRemConObserver;
+//    delete iFmTxStatusSubscriber;
+//    delete iFmTxRemConObserver;
     delete iSyncStatusSubscriber;
     delete iVideoSharingIndicatorSubscriber;
     delete iGpsIndicatorSubscriber;
@@ -302,11 +302,11 @@
         {
         HandleHwrmCategoryL( aKey, value );
         }
-    else if ( aCategory == KPSUidHWRMFmTx )
+/*    else if ( aCategory == KPSUidHWRMFmTx )
         {
         HandleHwrmFmTxCategoryL( aKey, value );
         }
-    else if ( aCategory == KPSUidDataSynchronizationInternalKeys )
+*/    else if ( aCategory == KPSUidDataSynchronizationInternalKeys )
         {
         HandleDataSyncCategoryL( aKey, value );
         }
@@ -609,7 +609,7 @@
             break;
         } 
     }
-
+/*
 // ----------------------------------------------------------------------------
 // CSysApPubSubObserver::HandleHwrmFmTxCategoryL()
 // ----------------------------------------------------------------------------
@@ -750,6 +750,7 @@
         iPreviousFmTxPSValue = aValue;
         }
     }
+*/
 
 // ----------------------------------------------------------------------------
 // CSysApPubSubObserver::HandleWlanCategoryL()
--- a/coreapplicationuis/SysAp/Src/SysApSatObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApSatObserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -18,8 +18,8 @@
 
 
 // INCLUDE FILES
-#include <RSatRefresh.h>
-#include <RSatSession.h>
+#include <rsatrefresh.h>
+#include <rsatsession.h>
 #include <e32debug.h>
 #include "SysApSatObserver.h"
 #include "SysAp.hrh"
--- a/coreapplicationuis/SysAp/Src/SysApSimChanged.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApSimChanged.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,11 +20,11 @@
 #include "SysApSimChanged.h"
 #include "SysApAppUi.h"
 #include <settingsinternalcrkeys.h>
-#include <LogsDomainCRKeys.h>
+//#include <LogsDomainCRKeys.h>
 #include <logcli.h>
 #include <centralrepository.h>
 const TInt KPSetDefaultCFTimer = 30;
-#include <RSSSettings.h>
+#include <rsssettings.h>
 #include <startupdomainpskeys.h>
 #include <PSVariables.h>
 #include "SysAp.hrh"
@@ -71,6 +71,12 @@
 
 void CSysApSimChanged::ClearRepositoriesL()
     {
+    const TUid KCRUidLogs = {0x101F874E};
+    /**
+    * Informs the Logs application about the amount of new missed calls.
+    * Integer type
+    **/
+    const TUint32 KLogsNewMissedCalls = 0x00000006;
     TRACES( RDebug::Print( _L("CSysApSimChanged::ClearRepositoriesL(): opening KCRUidCallForwarding") ) );
     
     CRepository* repository = CRepository::NewL( KCRUidCallForwarding );
--- a/coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #include "SysApSsSettingsObserver.h"
 #include "SysApAppUi.h"
 #include <avkon.hrh>
-#include <RSSSettings.h>
+#include <rsssettings.h>
 
 //CONSTANTS
 
--- a/coreapplicationuis/SysAp/Src/SysApStartupController.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApStartupController.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 
 #include <startupdomainpskeys.h>
 #include <startupdomaincrkeys.h>
-#include "CoreApplicationUIsPrivateCRKeys.h"
+#include "coreapplicationuisprivatecrkeys.h"
 #include <hwrmpowerstatesdkpskeys.h>
 #include "SysApStartupController.h"
 #include "SysApAppUi.h"
--- a/coreapplicationuis/SysAp/Src/Usb/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/memorycard/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/powersavemode/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -102,13 +102,13 @@
 	        || aOperationId == ERemConCoreApiMute )
 	        {
             // A volume key is pressed down
-            TRAPD( err, iSysApAppUi.ShowUiNoteL( EFmTxVolumeDisabledNote ) );
+/*            TRAPD( err, iSysApAppUi.ShowUiNoteL( EFmTxVolumeDisabledNote ) );
             
             if ( err != KErrNone )
                 {
                 TRACES( RDebug::Print( _L("CSysApRemConObserver::MrccatoCommand: err=%d"), err ) );
                 }
-	        }
+*/	        }
 	    }
 	}
 
--- a/coreapplicationuis/SysAp/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/SysAp/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/VariatedSettings/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/VariatedSettings/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/VariatedSettings/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/VariatedSettings/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -26,33 +26,33 @@
 ../rom/VariatedSettings_variant.iby     CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(VariatedSettings_variant.iby)
 
 // Normal RFS script
-../scripts/script0.txt /epoc32/release/winscw/udeb/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/winscw/urel/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/thumb/udeb/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/thumb/urel/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/arm4/udeb/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/arm4/urel/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/armv5/udeb/z/private/100059C9/script0.txt
-../scripts/script0.txt /epoc32/release/armv5/urel/z/private/100059C9/script0.txt
+../scripts/script0.txt /epoc32/release/winscw/udeb/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/winscw/urel/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/thumb/udeb/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/thumb/urel/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/arm4/udeb/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/arm4/urel/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/armv5/udeb/z/private/100059c9/script0.txt
+../scripts/script0.txt /epoc32/release/armv5/urel/z/private/100059c9/script0.txt
 
 // Deep RFS script
-../scripts/script1.txt /epoc32/release/winscw/udeb/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/winscw/urel/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/thumb/udeb/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/thumb/urel/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/arm4/udeb/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/arm4/urel/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/armv5/udeb/z/private/100059C9/script1.txt
-../scripts/script1.txt /epoc32/release/armv5/urel/z/private/100059C9/script1.txt
+../scripts/script1.txt /epoc32/release/winscw/udeb/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/winscw/urel/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/thumb/udeb/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/thumb/urel/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/arm4/udeb/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/arm4/urel/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/armv5/udeb/z/private/100059c9/script1.txt
+../scripts/script1.txt /epoc32/release/armv5/urel/z/private/100059c9/script1.txt
 
 // Init RFS script
-../scripts/ScriptInit.txt /epoc32/release/winscw/udeb/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/winscw/urel/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/thumb/udeb/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/thumb/urel/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/arm4/udeb/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/arm4/urel/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/armv5/udeb/z/private/100059C9/ScriptInit.txt
-../scripts/ScriptInit.txt /epoc32/release/armv5/urel/z/private/100059C9/ScriptInit.txt
+../scripts/ScriptInit.txt /epoc32/release/winscw/udeb/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/winscw/urel/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/thumb/udeb/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/thumb/urel/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/arm4/udeb/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/arm4/urel/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/armv5/udeb/z/private/100059c9/scriptinit.txt
+../scripts/ScriptInit.txt /epoc32/release/armv5/urel/z/private/100059c9/scriptinit.txt
 
 PRJ_MMPFILES
--- a/coreapplicationuis/VariatedSettings/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/VariatedSettings/scripts/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/group/accfwuinotifier.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/accfwuinotifier/group/accfwuinotifier.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -28,11 +28,17 @@
 
 CAPABILITY      CAP_ECOM_PLUGIN
 
+
+
+
+
+SYSTEMINCLUDE		/epoc32/include/mw/hb/hbwidgets
+
 SOURCEPATH      ../src
 
 SOURCE          AccFwUiNotifierProxy.cpp
 SOURCE          AccFwUiNoteNotifier.cpp
-SOURCE          AccFwUiDialogNotifier.cpp
+//SOURCE          AccFwUiDialogNotifier.cpp
 						
 USERINCLUDE     ../inc
 
@@ -52,14 +58,15 @@
 LIBRARY         euser.lib
 LIBRARY         eiksrv.lib
 LIBRARY	        efsrv.lib
-LIBRARY         FeatMgr.lib
+LIBRARY         featmgr.lib
 LIBRARY         eikdlg.lib
-LIBRARY         Avkon.lib
-LIBRARY			bafl.lib
-LIBRARY 		cone.lib
-
+LIBRARY		bafl.lib
+LIBRARY 	cone.lib
+//hb
+LIBRARY         HbWidgets.lib
 
 MACRO           API_TRACE_FLAG
 MACRO           COMPONENT_TRACE_FLAG
 
 // End of file
+
--- a/coreapplicationuis/accfwuinotifier/inc/AccFwUiNoteNotifier.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/accfwuinotifier/inc/AccFwUiNoteNotifier.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -23,6 +23,8 @@
 #include <e32std.h>
 #include <e32base.h>
 #include <eiknotapi.h>
+#include <eikenv.h>
+
 
 // CONSTANTS
 const TUid KAccFwUiNoteNotifierUid = { 0x10205061 };
@@ -32,7 +34,7 @@
 
 // FORWARD DECLARATIONS
 class CCoeEnv;
-class CAknNoteDialog;
+
 
 // CLASS DECLARATION
 /**
@@ -97,13 +99,13 @@
 		RMessagePtr2 iMessage;
         // Indication whether notifier cancelled
         TBool iIsCancelled;
-	    // Note
-        CAknNoteDialog* iNote;
+	    
 	    // Indication whether to show not supported note in cover display
         TBool iPublishNote;
 	    // Text to show in note
         HBufC* iNoteText;
-
+        
+       
     };
 
 #endif      // __CACCFWUINOTENOTIFIER_H
--- a/coreapplicationuis/accfwuinotifier/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/accfwuinotifier/src/AccFwUiNoteNotifier.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/accfwuinotifier/src/AccFwUiNoteNotifier.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -20,10 +20,9 @@
 #include <featmgr.h>
 #include <accfwnoteuinotifier.rsg>
 #include <data_caging_path_literals.hrh> 
-#include <aknnotewrappers.h>
 #include <SecondaryDisplay/SecondaryDisplayAccFwAPI.h>
 #include <bautils.h>
-
+#include <hbdevicemessageboxsymbian.h>
 #include "AccFwUiNoteNotifier.h"
 #include "acc_debug.h"
 
@@ -68,7 +67,6 @@
     {
     API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::~CAccFwUiNoteNotifier()" );
 
-    delete iNote;
     delete iNoteText;
     CActive::Cancel();
     
@@ -211,144 +209,7 @@
 
     if ( aBuffer.Length() )
         {
-		API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Default accessory selection or headphones information" );
-
-    	TInt value( 0 );
-    	TPckg<TInt> pckg( value );
-    	pckg.Copy( aBuffer );
-
-   		//get "default enhancement" string resource
-		API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Read default enhancement string" );
-        defaultText = iCoeEnv->AllocReadResourceLC( R_TEXT_DEFAULT_ENHANC );
-
-  		TPtrC enhancement;
-  		TBool enhancementOk( ETrue );
-
-  		if ( value != 0 )
-  		    {
-			API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Default selection" );
-
-  			enhancementOk = EFalse;
-            HBufC8* literals = iCoeEnv->AllocReadResourceAsDes8L( R_SELECTION_DIALOG_LITERALS );
-            TResourceReader reader;
-        	reader.SetBuffer( literals );
-
-			TInt count( reader.ReadInt16() );
-			API_TRACE_1( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Read literals, count %d", count );
-
-			// Find correct accessory literal
-			for ( TInt i = 0; i < count; i++ )
-			    {
-				//read from resource
-				TUint32 index( reader.ReadUint32() );
-				API_TRACE_1( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Read literal, index %d", index );
-
-				if ( index == value )
-				    {
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Literal found!" );
-					// Literal found
-					enhancement.Set( reader.ReadTPtrC() );
-					enhancementOk = ETrue;
-					break;
-				    }
-				else
-				    {
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Not found!" );
-					reader.ReadTPtrC();
-				    }
-			    }
-			    
-			delete literals;
-  		    }
-
-		if ( enhancementOk )
-		    {
-			API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Enhancement OK!" );
-			HBufC* noteStr = NULL;
-
-			// Headphones...
-			if ( value == 0x08 || value == 0x40 || value == 0 )
-			    {
-				API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Show headphones information!" );
-
-				// Default enhancement string if needed
-				if ( value != 0 )
-				    {
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Show also default information!" );
-				 	noteStr = HBufC::NewL( defaultText->Length() + enhancement.Length() + 3 );
-
-				 	TPtr ptr( noteStr->Des() );	
-					ptr.Append( defaultText->Des() );
-					ptr.Append( ' ' );
-					ptr.Append( enhancement );
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Default string ready!" );
-				    }
-
-				API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Read use phone mic string!" );
-                // Read resource use phone mic and default enhancement text...
-		   	    HBufC* usePhoneMicTextHolder = iCoeEnv->AllocReadResourceLC( R_TEXT_HEADPHONES_MIC );
-				
-				TBool chekcNoteStr( EFalse );
-				if ( noteStr )
-				    {
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Add phone mic string to default accessory string!" );
-					CleanupStack::PushL( noteStr );
-					HBufC* temp = noteStr->ReAllocL( noteStr->Length() + 2 + usePhoneMicTextHolder->Length() + 1 );
-					CleanupStack::Pop( noteStr );
-					noteStr = temp;
-					chekcNoteStr = ETrue;
-					}
-				else
-				    {
-					API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Only use phone mic string!" );
-					noteStr = HBufC::NewL( usePhoneMicTextHolder->Length() + 1 );
-				    }
-
-			 	TPtr ptr( noteStr->Des() );	
-				
-				
-				if( chekcNoteStr )
-					{
-					ptr.Append( _L( ". " ) );
-					ptr.Append( usePhoneMicTextHolder->Des() );
-					}
-                else
-                	{
-                	ptr.Append( usePhoneMicTextHolder->Des() );
-                	}
-                // Cleanup
-                CleanupStack::PopAndDestroy( usePhoneMicTextHolder );
-
-				API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - String ready!" );
-			    }
-			else
-			    {
-				API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Create default accessory text!" );
-				//only default accessory text
-				noteStr = HBufC::NewL( defaultText->Length() + enhancement.Length() + 1 );
-            	TPtr ptr( noteStr->Des() );
-			
-				ptr.Append( defaultText->Des() );
-				ptr.Append( ' ' );
-				ptr.Append( enhancement );
-				API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Default accessory text ready!" );
-			    }
-
-            // Pass string to member string and free local copies
-            CleanupStack::PopAndDestroy( defaultText );
-            CleanupStack::PushL( noteStr );
-            iNoteText = HBufC::NewL( noteStr->Length() );
-            TPtr ptr( iNoteText->Des() );
-            ptr.Append( noteStr->Des() );
-            CleanupStack::PopAndDestroy( noteStr );
-            showNote = ETrue;
-		    }
-		else
-		    {
-			API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - No note" );
-            // No need to check this one, always set into cleanup stack
-            CleanupStack::PopAndDestroy( defaultText );
-            }
+		//Do nothing as accessory is rightly detected by accessory server and adaptation.
         }
     else
         {
@@ -365,13 +226,7 @@
     iMessage = aMessage;
     if( showNote )
         {
-        if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) )
-            {
-    		API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - Cover UI supported" );
-            iPublishNote = ETrue;
-            }
-
-    	iIsCancelled = EFalse;
+        iIsCancelled = EFalse;
         SetActive();
         TRequestStatus* status = &iStatus;
         User::RequestComplete( status, KErrNone ); // RunL() function will get called
@@ -398,25 +253,13 @@
 		return;	
 	    }
     
-    // Create note
-    iNote = new ( ELeave ) CAknNoteDialog(
-        CAknNoteDialog::ENoTone,
-        CAknNoteDialog::ELongTimeout );
-
-    iNote->PrepareLC( R_ACCFWUINOTIFIER_INFORMATION_NOTE ); // Adds to CleanupStack
-
-    if ( iPublishNote )
-        {
-        iNote->PublishDialogL( ECmdShowAccessoryNotSupportedNote, KCatAccFw );
-        iPublishNote = EFalse;
-        }
-
-    iNote->SetTextL( *iNoteText );
-    API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::StartL() - iNote->RunLD()!" );
-    iNote->RunLD();
-    iNote = NULL;
-    delete iNoteText;
-    iNoteText = NULL;
+   	CHbDeviceMessageBoxSymbian *messageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
+	           CleanupStack::PushL(messageBox);
+	           messageBox->SetTextL(*iNoteText);
+	           messageBox->ShowL();
+	           CleanupStack::PopAndDestroy(messageBox); // messageBox
+	           delete iNoteText;
+	           iNoteText = NULL;
 
     API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::RunL() - Complete message" );
 	iMessage.Complete( KErrNone );
@@ -465,21 +308,17 @@
 
     iIsCancelled = ETrue;
     
-    if ( iNote )
-        {
-	   // Cancel active object, delete dialog and free resources
+    	   // Cancel active object and free resources
         if ( IsActive() )
             {
             CActive::Cancel();    
             }
-	    delete iNote;
-	    iNote = NULL;
-        delete iNoteText;
+	      delete iNoteText;
         iNoteText = NULL;
 
         API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::Cancel() - Complete message with Cancel" );
         iMessage.Complete( KErrCancel );
-        }
+       
 
     API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CAccFwUiNoteNotifier::Cancel() - return" );
     }
--- a/coreapplicationuis/accfwuinotifier/src/AccFwUiNotifierProxy.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/accfwuinotifier/src/AccFwUiNotifierProxy.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -30,7 +30,7 @@
 
 // CONSTANTS
 
-const TInt KNumberOfImplementations(2);
+const TInt KNumberOfImplementations(1);
 
 // MACROS
 
@@ -51,15 +51,10 @@
     API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CreateNotifiersL() - enter" );
     MEikSrvNotifierBase2* note = CAccFwUiNoteNotifier::NewL();
     CleanupStack::PushL( note );
-    
-    MEikSrvNotifierBase2* dialog = CAccFwUiDialogNotifier::NewL();
-    CleanupStack::PushL( dialog );        
-    
+          
     aSubjects->AppendL( note );
-    aSubjects->AppendL( dialog );
-    
-    CleanupStack::Pop( dialog );
-    CleanupStack::Pop( note );
+     
+      CleanupStack::Pop( note );
     API_TRACE_( "[AccFW: ACCFWUINOTIFIER] CreateNotifiersL() - return void" );
     
     }
--- a/coreapplicationuis/accfwuinotifier/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/data/keyevent.rul	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/advancedtspcontroller/data/keyevent.rul	Thu Jun 24 13:52:58 2010 +0100
@@ -22,9 +22,9 @@
             />
             
             <Tsp
-            routingTable='01'
+            routingTable='01'            
+            ruleForeground='01'
             ruleActiveAudio='00'
-            ruleForeground='01'
             ruleLastPlayedAudio='03'
             ruleDefaultApp='02'
             defaultApplicationPhone='100058B3'
--- a/coreapplicationuis/advancedtspcontroller/data/keyinfmtx.rul	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/advancedtspcontroller/data/keyinfmtx.rul	Thu Jun 24 13:52:58 2010 +0100
@@ -11,10 +11,6 @@
                 <contextRef source='Call' type='State'/>
                 <string>None</string>
             </equals>
-            <equals>
-                <contextRef source='CurrentVolume' type='Mute'/>
-                <string>Off</string>
-            </equals>
         </and>
         <actions>
             <!-- FM Tx has been enabled -->
--- a/coreapplicationuis/advancedtspcontroller/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/group/RemConTspController.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/advancedtspcontroller/group/RemConTspController.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <remcon/remconservercaps.mmh> // RemCon has defined capabilities
 #include <platform_paths.hrh>
 
-TARGET          AdvancedTspController.dll
+TARGET          advancedtspcontroller.dll
 TARGETTYPE      PLUGIN
 UID             0x10009d8d 0x10282CD5
 
@@ -32,7 +32,7 @@
 SOURCE          remconeventtable.cpp
 
 START RESOURCE  ../data/10282CD5.rss
-target          AdvancedTspController.rsc
+target          advancedtspcontroller.rsc
 END
 
 USERINCLUDE     ../inc
@@ -46,8 +46,8 @@
 LIBRARY         apparc.lib
 LIBRARY         remcontargetselectorplugin.lib
 LIBRARY         remcontypes.lib
-LIBRARY         CFClient.lib
-LIBRARY         CFServices.lib
+LIBRARY         cfclient.lib
+LIBRARY         cfservices.lib
 LIBRARY         ws32.lib
 LIBRARY         apgrfx.lib
 LIBRARY         tspclientmapper.lib
--- a/coreapplicationuis/advancedtspcontroller/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/advancedtspcontroller/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -10,6 +10,7 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
+* 
 *
 * Description:  Bld.inf file for Symbian's Remote Control framework related 
 *				 plug-ins that are used to deliver messages (e.g. accessory key 
@@ -17,6 +18,9 @@
 *
 */
 
+/*
+*NTT DOCOMO, INC - BUG 2365
+*/
 
 #include <platform_paths.hrh>
 
@@ -26,15 +30,19 @@
 PRJ_EXPORTS
 
 #ifdef RD_TSP_CLIENT_MAPPER
+/*
+Copy keyevent.rul, keyincall.rul, keyinfmtx.rul to 
+1. /epoc32/data/z/private/10282BC4/rules/
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/rules/
+3. /epoc32/release/winscw/urel/z/private/10282BC4/rules/
+*/
 // Rules for media key handling
-../data/keyevent.rul                                        	    /epoc32/data/Z/private/10282bc4/rules/keyevent.rul
-../data/keyevent.rul                                        	    /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/keyevent.rul
+../data/keyevent.rul                                        	    Z:/private/10282bc4/rules/keyevent.rul
 // Call handling rules
-../data/keyincall.rul                               	            /epoc32/data/Z/private/10282bc4/rules/keyincall.rul
-../data/keyincall.rul                               	            /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/keyincall.rul
+../data/keyincall.rul                               	            Z:/private/10282bc4/rules/keyincall.rul
 // FM transmitter handling rules
-../data/keyinfmtx.rul                               	            /epoc32/data/Z/private/10282bc4/rules/keyinfmtx.rul
-../data/keyinfmtx.rul                               	            /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/keyinfmtx.rul
+../data/keyinfmtx.rul                               	            Z:/private/10282bc4/rules/keyinfmtx.rul
+
 ../rom/advancedtspcontroller.iby CORE_MW_LAYER_IBY_EXPORT_PATH(advancedtspcontroller.iby)
 
 PRJ_MMPFILES
--- a/coreapplicationuis/advancedtspcontroller/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/mt_atspc/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/stub/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/stub/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/advancedtspcontroller/tsrc/stub/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/Inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/gsserverenginestub/group/GSServerEnginestub.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/gsserverenginestub/group/GSServerEnginestub.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 // To get the MW_LAYER_SYSTEMINCLUDE-definition
 #include <platform_paths.hrh>
 
-TARGET                  GSServerEnginestub.dll
+TARGET                  gsserverenginestub.dll
 TARGETTYPE              dll
 UID                     0x10281F16
 
--- a/coreapplicationuis/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/BWINS/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/group/KeyEventFw.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/kefmapper/group/KeyEventFw.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
 
-TARGET          KeyEventFw.DLL
+TARGET          keyeventfw.dll
 TARGETTYPE      dll
 UID             0x1000008D 0x102824C2
 
--- a/coreapplicationuis/kefmapper/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/kefmapper/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/BWINS/batterypopupcontrolu.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/BWINS/batterypopupcontrolu.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,6 @@
 EXPORTS
-	??1CBatteryPopupControl@@UAE@XZ @ 1 NONAME ; CBatteryPopupControl::~CBatteryPopupControl(void)
-	?NewL@CBatteryPopupControl@@SAPAV1@ABVTDesC16@@0@Z @ 2 NONAME ; class CBatteryPopupControl * CBatteryPopupControl::NewL(class TDesC16 const &, class TDesC16 const &)
-	?SetCommandObserver@CBatteryPopupControl@@QAEXAAVMEikCommandObserver@@@Z @ 3 NONAME ; void CBatteryPopupControl::SetCommandObserver(class MEikCommandObserver &)
-	?ShowPopUpL@CBatteryPopupControl@@QAEXXZ @ 4 NONAME ; void CBatteryPopupControl::ShowPopUpL(void)
+	?NewL@CBatteryPopupControl@@SAPAV1@ABVTDesC16@@0@Z @ 1 NONAME ; class CBatteryPopupControl * CBatteryPopupControl::NewL(class TDesC16 const &, class TDesC16 const &)
+	?SetCommandObserver@CBatteryPopupControl@@QAEXAAVMEikCommandObserver@@@Z @ 2 NONAME ; void CBatteryPopupControl::SetCommandObserver(class MEikCommandObserver &)
+	?ShowPopUpL@CBatteryPopupControl@@QAEXXZ @ 3 NONAME ; void CBatteryPopupControl::ShowPopUpL(void)
+	??1CBatteryPopupControl@@QAE@XZ @ 4 NONAME ; CBatteryPopupControl::~CBatteryPopupControl(void)
 
--- a/coreapplicationuis/powersaveutilities/CenRep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/EABI/batterypopupcontrolu.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/EABI/batterypopupcontrolu.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -2,7 +2,6 @@
 	_ZN20CBatteryPopupControl10ShowPopUpLEv @ 1 NONAME
 	_ZN20CBatteryPopupControl18SetCommandObserverER19MEikCommandObserver @ 2 NONAME
 	_ZN20CBatteryPopupControl4NewLERK7TDesC16S2_ @ 3 NONAME
-	_ZN20CBatteryPopupControlD0Ev @ 4 NONAME
-	_ZN20CBatteryPopupControlD1Ev @ 5 NONAME
-	_ZN20CBatteryPopupControlD2Ev @ 6 NONAME
+	_ZN20CBatteryPopupControlD1Ev @ 4 NONAME
+	_ZN20CBatteryPopupControlD2Ev @ 5 NONAME
 
--- a/coreapplicationuis/powersaveutilities/batindicatorpaneplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batindicatorpaneplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batindicatorpaneplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -19,10 +19,10 @@
 #ifndef CBATTERYPOPUPCONTROL_H
 #define CBATTERYPOPUPCONTROL_H
 
-#include <AknControl.h>
-#include <AknUtils.h>
-#include <AknPreviewPopUpController.h> // Controlling the preview pop-up component
-
+//#include <akncontrol.h>
+//#include <aknutils.h>
+//#include <aknpreviewpopupcontroller.h> // Controlling the preview pop-up component
+#include<coecobs.h>
 class MEikCommandObserver; 
 class CEikLabel;
 class CGulIcon;
@@ -42,10 +42,9 @@
 *  @lib BatteryPopupControl.lib
 *  @since S60 5.0
 */
-NONSHARABLE_CLASS( CBatteryPopupControl ) :
-    public CAknControl,
-    public MCoeControlObserver,
-    public MAknPreviewPopUpObserver
+NONSHARABLE_CLASS( CBatteryPopupControl ) :public MCoeControlObserver
+   // public CAknControl,
+       // public MAknPreviewPopUpObserver
     {
 public:
     
@@ -72,7 +71,7 @@
     /**
      * Destructor.
      */
-    ~CBatteryPopupControl();
+    IMPORT_C ~CBatteryPopupControl();
        
     /**
      * Sets the command observer of the preview pop-up content. When
@@ -134,8 +133,8 @@
     /**
      * @see MAknPreviewPopUpObserver
      */
-    void HandlePreviewPopUpEventL( CAknPreviewPopUpController* aController,
-                                   TPreviewPopUpEvent aEvent );     
+ //   void HandlePreviewPopUpEventL( CAknPreviewPopUpController* aController,
+ //                                  TPreviewPopUpEvent aEvent );     
 
     /**
      * Default constructor.
@@ -159,8 +158,8 @@
      * @param aParent Parent rect.
      * @param aComponentLayout Layout data.
      */
-    TRect RectFromLayout( const TRect& aParent,
-        const TAknWindowComponentLayout& aComponentLayout ) const;
+ //   TRect RectFromLayout( const TRect& aParent,
+ //       const TAknWindowComponentLayout& aComponentLayout ) const;
 
     /**
      * Gets rect from layout data.
@@ -168,8 +167,8 @@
      * @since S60 5.0
      * @param aComponentLayout Layout data.
      */
-    TRect PopUpWindowRectFromLayout( const TAknWindowComponentLayout&
-        aComponentLayout ) const;
+ //   TRect PopUpWindowRectFromLayout( const TAknWindowComponentLayout&
+ //       aComponentLayout ) const;
     
     /**
      * Creates CGulIcon.
@@ -271,7 +270,7 @@
     /**
      * Layout for icon  
      */
-    TAknLayoutRect iBitmapLayout;  
+  //  TAknLayoutRect iBitmapLayout;  
 
     /**
      * Variant, 
@@ -284,7 +283,7 @@
      * Popup controller
      * Own.  
      */    
-    CAknPreviewPopUpController* iController;
+  //  CAknPreviewPopUpController* iController;
     
     /**
      * Rect for link  
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -16,17 +16,17 @@
 */
 
 
-#include <AknUtils.h>
-#include <AknPanic.h>
-#include <AknPreviewPopUpController.h>
-#include <aknglobalpopupprioritycontroller.h>
+//#include <aknutils.h>
+//#include <aknpanic.h>
+//#include <aknpreviewpopupcontroller.h>
+//#include <aknglobalpopupprioritycontroller.h>
 #include <barsread.h> // TResourceReader
 #include <eiklabel.h>
 #include <fbs.h>
-#include <aknappui.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknsDrawUtils.h>
-#include <AknBidiTextUtils.h>
+//#include <aknappui.h>
+//#include <aknlayoutscalable_avkon.cdl.h>
+//#include <aknsdrawutils.h>
+//#include <aknbiditextutils.h>
 #include <data_caging_path_literals.hrh> // KDC_RESOURCE_FILES_DIR
 #include <batterypopupcontrol.mbg>
 // ----------- Touch feedback additions start
@@ -39,9 +39,9 @@
 #include "trace.h"
 
 // Constants
-const TInt KPopupShowDelay = 0;       // Show immediately
-const TInt KPopupHideDelay = 3000000; // hide after 3 sec
-const TInt KMaxLinkTextLength = 255;
+//const TInt KPopupShowDelay = 0;       // Show immediately
+//const TInt KPopupHideDelay = 3000000; // hide after 3 sec
+//const TInt KMaxLinkTextLength = 255;
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -80,7 +80,7 @@
 EXPORT_C CBatteryPopupControl::~CBatteryPopupControl()
     {  
     FUNC_LOG   
-    delete iController;
+  //  delete iController;
     delete iText;
     delete iIcon;
     delete iLinkText;
@@ -105,7 +105,7 @@
     {    
     FUNC_LOG
     
-    iController = CAknPreviewPopUpController::NewL( *this, CAknPreviewPopUpController::ELayoutDefault | CAknPreviewPopUpController::EDontClose );            
+ /*   iController = CAknPreviewPopUpController::NewL( *this, CAknPreviewPopUpController::ELayoutDefault | CAknPreviewPopUpController::EDontClose );            
     iController->AddObserverL( *this );
     
     // Set popup's hide/show delays
@@ -121,7 +121,7 @@
         }
 		
     // Launch
-    iController->ShowPopUp();  
+    iController->ShowPopUp();  */
     }
 
 // -----------------------------------------------------------------------------
@@ -134,11 +134,11 @@
     {
     FUNC_LOG
     	
-    CCoeControl::HandleResourceChange( aType );
+   /* CCoeControl::HandleResourceChange( aType );
     if ( aType == KEikDynamicLayoutVariantSwitch )
         {
         SizeChanged();
-        }
+        }*/
     }
 
 
@@ -152,7 +152,7 @@
     {
     FUNC_LOG
     	
-    CCoeControl::SetContainerWindowL( aContainer );
+ //   CCoeControl::SetContainerWindowL( aContainer );
     
     if( iText )
         {
@@ -175,9 +175,10 @@
 // From MAknPreviewPopUpObserver
 // ---------------------------------------------------------------------------
 //
+/*
 void CBatteryPopupControl::HandlePreviewPopUpEventL(
-    CAknPreviewPopUpController* /*aController*/,
-    TPreviewPopUpEvent aEvent )
+    CAknPreviewPopUpController aController,
+   TPreviewPopUpEvent aEvent )
     {
     FUNC_LOG
 
@@ -191,7 +192,7 @@
             break;
         }
     }
-    
+    */
 // -----------------------------------------------------------------------------
 // CAknStylusActivatedPopUpContent::ConstructL
 // -----------------------------------------------------------------------------
@@ -217,7 +218,7 @@
             }      
         iLinkText = aLinkText.AllocL(); 
         }
-        
+ /*       
     TRect rectPopUpWindow = PopUpWindowRectFromLayout( 
         AknLayoutScalable_Avkon::popup_battery_window( iVariant ) );
       
@@ -230,9 +231,9 @@
         AknLayoutScalable_Avkon::popup_battery_window_t1( iVariant );
     TAknLayoutText textRect;
     textRect.LayoutText( rectPopUpWindow, textLayout );
-    
+    */
     // Font for command links
-    iFont = textRect.Font();    
+  //  iFont = textRect.Font();    
     }
     
 // -----------------------------------------------------------------------------
@@ -254,8 +255,8 @@
                 }
             }        
         default:
-            __ASSERT_ALWAYS( aIndex >= 0, User::Panic( 
-                _L("CBatteryPopupControl::ComponentControl"), EAknPanicOutOfRange ) );
+         //   __ASSERT_ALWAYS( aIndex >= 0, User::Panic( 
+          //      _L("CBatteryPopupControl::ComponentControl"), EAknPanicOutOfRange ) );
             return NULL;
         }        
     }
@@ -289,7 +290,7 @@
     {
     FUNC_LOG
       	
-    CWindowGc& gc = SystemGc();
+ /*   CWindowGc& gc = SystemGc();
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     
     if( iIcon )
@@ -375,7 +376,7 @@
         gc.DrawText( ptr, rect, baselineOffset, 
             CGraphicsContext::ELeft );
         delete visualText; 
-        }
+        }*/
     }
 
 
@@ -406,9 +407,9 @@
         TInt tempWidth = iFont->TextWidthInPixels( *( iLinkText ) );
         minWidth = Max( minWidth, tempWidth );
         }
-    TInt rectWidth = 0;
+  //  TInt rectWidth = 0;
     
-    TAknWindowComponentLayout infoPaneLayout = 
+/*    TAknWindowComponentLayout infoPaneLayout = 
         AknLayoutScalable_Avkon::bg_popup_sub_pane_cp25( iVariant );
                
     TRect rectPopUpWindow =  PopUpWindowRectFromLayout( 
@@ -418,9 +419,9 @@
     
     rectWidth = Max( rectInfoPane.Width(), minWidth ); 
     
-    TInt rectHeight = rectInfoPane.Height();
+    TInt rectHeight = rectInfoPane.Height();*/
    
-    return TSize( rectWidth, rectHeight ); 
+ //   return TSize( rectWidth, rectHeight ); 
     }
 
 
@@ -433,7 +434,7 @@
     {
     FUNC_LOG 	
     // Get popup window rect
-    TRect rectPopUpWindow =  PopUpWindowRectFromLayout( 
+ /*   TRect rectPopUpWindow =  PopUpWindowRectFromLayout( 
         AknLayoutScalable_Avkon::bg_popup_sub_pane_cp25( iVariant ) );
     
     // Get pane icon and text layouts
@@ -486,27 +487,27 @@
             }
         tempRect.SetWidth( tempWidth );
         iLinkRect = tempRect;
-        }
+        }*/
     }
 
 // -----------------------------------------------------------------------------
 // RectFromLayout
 // -----------------------------------------------------------------------------
 //
-TRect CBatteryPopupControl::RectFromLayout( const TRect& aParent,
+/*TRect CBatteryPopupControl::RectFromLayout( const TRect& aParent,
         const TAknWindowComponentLayout& aComponentLayout ) const
     {
     TAknWindowLineLayout lineLayout = aComponentLayout.LayoutLine();
     TAknLayoutRect layoutRect;
     layoutRect.LayoutRect( aParent, lineLayout );
     return layoutRect.Rect();
-    }
+    }*/
 
 // -----------------------------------------------------------------------------
 // PopUpWindowRectFromLayout
 // -----------------------------------------------------------------------------
 //
-TRect CBatteryPopupControl::PopUpWindowRectFromLayout( const
+/*TRect CBatteryPopupControl::PopUpWindowRectFromLayout( const
     TAknWindowComponentLayout& aComponentLayout ) const
     {
     FUNC_LOG          
@@ -519,7 +520,7 @@
     layoutRect.LayoutRect( iAvkonAppUi->ApplicationRect(), lineLayout );
 
     return layoutRect.Rect();
-    }
+    }*/
    
 // -----------------------------------------------------------------------------
 // From class CCoeControl
@@ -537,7 +538,7 @@
             if ( !iHighlightedItem )
                 {         
                 iHighlightedItem = ETrue;             
-                DrawNow( iLinkRect );
+             //   DrawNow( iLinkRect );
                 }
 #ifdef RD_TACTILE_FEEDBACK
             if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -553,7 +554,7 @@
             // Nofity command observer  
             if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
                 {
-                iCommandObserver->ProcessCommandL( ELinkFirst );
+              //  iCommandObserver->ProcessCommandL( ELinkFirst );
                 iHighlightedItem = EFalse; 
                 }
             }
@@ -577,12 +578,12 @@
     delete iIcon;
     iIcon = NULL;
     
-    iIcon = AknsUtils::CreateGulIconL( AknsUtils::SkinInstance(),
+ /*   iIcon = AknsUtils::CreateGulIconL( AknsUtils::SkinInstance(),
                                        KAknsIIDQgnPropBatteryIcon,
                                        fp->FullName(),
                                        EMbmBatterypopupcontrolQgn_prop_battery_ps_deactivate,
                                        EMbmBatterypopupcontrolQgn_prop_battery_ps_deactivate_mask );
-
+*/
     CleanupStack::PopAndDestroy( fp );
     }      
 //  End of File
--- a/coreapplicationuis/powersaveutilities/bsutil/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/bsutil/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/bsutil/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/group/BSUtil.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/group/BSUtil.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET          BSUtil.dll
+TARGET          bsutil.dll
 TARGETTYPE      dll
 
 UID             0x1000008D 0x2000B5E2 
--- a/coreapplicationuis/powersaveutilities/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/group/batindicatorpaneplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/group/batindicatorpaneplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -65,7 +65,7 @@
 LIBRARY     efsrv.lib               // TParsePtrC
 LIBRARY     flogger.lib
 LIBRARY     psmclient.lib
-LIBRARY     BSUtil.lib
+LIBRARY     bsutil.lib
 LIBRARY     batterypopupcontrol.lib
 LIBRARY     centralrepository.lib
 // End of File
--- a/coreapplicationuis/powersaveutilities/group/batterypopupcontrol.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/group/batterypopupcontrol.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -42,15 +42,15 @@
 LIBRARY   efsrv.lib               // TParsePtrC
 LIBRARY   flogger.lib
 LIBRARY   eikcoctl.lib
-LIBRARY   AknLayout2.lib
-LIBRARY   AknLayout2Scalable.lib
-LIBRARY   CdlEngine.lib
-LIBRARY   AknSkins.lib // Skins support
+LIBRARY   aknlayout2.lib
+LIBRARY   aknlayout2scalable.lib
+LIBRARY   cdlengine.lib
+LIBRARY   aknskins.lib // Skins support
 LIBRARY   gdi.lib
-LIBRARY   AknIcon.lib
+LIBRARY   aknicon.lib
 LIBRARY   egul.lib
-LIBRARY   FontProvider.lib
-LIBRARY   FontUtils.lib
+LIBRARY   fontprovider.lib
+LIBRARY   fontutils.lib
 #ifndef AVKON_BATTERYPOPUP_LAYOUTS
 LIBRARY   aknnotify.lib
 #endif //AVKON_BATTERYPOPUP_LAYOUTS
--- a/coreapplicationuis/powersaveutilities/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -39,7 +39,7 @@
 PRJ_MMPFILES
 BSUtil.mmp
 batterypopupcontrol.mmp
-batindicatorpaneplugin.mmp
+//batindicatorpaneplugin.mmp
 
 PRJ_EXTENSIONS
 
--- a/coreapplicationuis/powersaveutilities/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/rom/powersaveutilities.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/powersaveutilities/rom/powersaveutilities.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -23,7 +23,7 @@
 file=ABI_DIR\BUILD_DIR\batterypopupcontrol.dll  SHARED_LIB_DIR\batterypopupcontrol.dll
 
 //ECOM_PLUGIN_UDEB( batindicatorpaneplugin.dll, batindicatorpaneplugin.rsc )
-ECOM_PLUGIN( batindicatorpaneplugin.dll, batindicatorpaneplugin.rsc )
+//ECOM_PLUGIN( batindicatorpaneplugin.dll, batindicatorpaneplugin.rsc )
 
 data=DATAZ_\ECOM_RESOURCE_DIR\batindicatorpaneplugin.rsc   ECOM_RESOURCE_DIR\batindicatorpaneplugin.rsc
 data=DATAZ_\ECOM_RESOURCE_DIR\batindpaneplugin.rsc         ECOM_RESOURCE_DIR\batindpaneplugin.rsc
--- a/coreapplicationuis/powersaveutilities/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/adv/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/adv/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/adv/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/adv/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/adv/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/MT_BSUtil/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/MT_BatteryPopupControl/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/basic/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/tsrc/public/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/group/AIRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/AIRFSPlugin/group/AIRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      AIRFSPlugin.dll
+TARGET      airfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BD.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET AIRFSPlugin.rsc
+  TARGET airfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/AIRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/group/CertRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/CertRFSPlugin/group/CertRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      CertRFSPlugin.dll
+TARGET      certrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8B9.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET CertRFSPlugin.rsc
+  TARGET certrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/CertRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/group/ClockRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/ClockRFSPlugin/group/ClockRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      ClockRFSPlugin.dll
+TARGET      clockrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BE.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET ClockRFSPlugin.rsc
+  TARGET clockrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/ClockRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/group/DatastoreRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/group/DatastoreRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      DatastoreRFSPlugin.dll
+TARGET      datastorerfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8C2.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET DatastoreRFSPlugin.rsc
+  TARGET datastorerfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DatastoreRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/group/DefaultFolderRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/group/DefaultFolderRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      DefaultFolderRFSPlugin.dll
+TARGET      defaultfolderrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BA.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET DefaultFolderRFSPlugin.rsc
+  TARGET defaultfolderrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DefaultFolderRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DisplayContrastPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DisplayContrastPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DisplayContrastPlugin/group/RfsDisplayContrastPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/DisplayContrastPlugin/group/RfsDisplayContrastPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      RfsDisplayContrastPlugin.dll
+TARGET      rfsdisplaycontrastplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 102071F7.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET RfsDisplayContrastPlugin.rsc
+  TARGET rfsdisplaycontrastplugin.rsc
 #endif 
 END
 
@@ -44,5 +44,5 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
 LIBRARY hal.lib         // HAL library
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DisplayContrastPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/DisplayContrastPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/group/FavouritesRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/group/FavouritesRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      FavouritesRFSPlugin.dll
+TARGET      favouritesrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 102071F6.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET FavouritesRFSPlugin.rsc
+  TARGET favouritesrfsplugin.rsc
 #endif 
 END
 
@@ -45,5 +45,5 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib            // Base library
-LIBRARY ECom.lib	         // ECom library
-LIBRARY FavouritesEngine.lib // Favourites engine library
+LIBRARY ecom.lib	         // ECom library
+LIBRARY favouritesengine.lib // Favourites engine library
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/src/FavouritesRFSPlugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/FavouritesRFSPlugin/src/FavouritesRFSPlugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -17,8 +17,8 @@
 
 
 // INCLUDE FILES
-#include <favouritesdb.h>
-#include <favouriteslimits.h>
+#include <FavouritesDb.h>
+#include <FavouritesLimits.h>
 #include "FavouritesRFSPluginPrivateCRKeys.h"
 #include "FavouritesRFSPlugin.h"
 
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/formatterrfsplugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/formatterrfsplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -19,10 +19,11 @@
 // SYSTEM INCLUDE
 #include <centralrepository.h>
 #include <driveinfo.h>
-#include <swi\sisregistrysession.h>
-#include <swi\sisregistryentry.h>
-#include <swi\sisregistrypackage.h>
-#include <mmf\common\mmfcontrollerpluginresolver.h>
+#include <swi/sisregistrysession.h>
+#include <swi/sisregistryentry.h>
+#include <swi/sisregistrypackage.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h>
+#include <starterdomaincrkeys.h>
 // USER INCLUDE
 #include "formatterrfsplugin.h"
 #include "formatterrfspluginprivatecrkeys.h"
@@ -44,66 +45,76 @@
 //
 static void FileWriteL(RPointerArray<HBufC> &files)
     {
-    RFs iFs;
-    RFile iFile;
-    User::LeaveIfError(iFs.Connect());
-    TInt err = iFile.Open(iFs,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite);
-
+    RFs fileSession;
+    RFile file;
+    User::LeaveIfError(fileSession.Connect());
+    TInt err = file.Open(fileSession,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite|EFileStreamText);
+        
     if ( err != KErrNone )
         {
         RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL , FileWrite : Failed to open the file"));
         return;
         }
-    TBuf8 <1> newLine;
-    newLine.Append('\n');
+
     TInt pos = 0;
-    iFile.Seek(ESeekEnd,pos);
+    file.Seek(ESeekEnd,pos);
     TInt size = files.Count();
+    RBuf filenameBuf;
+
     for ( TInt i=0; i < size; i++)
         {
         HBufC8* fileName = HBufC8::NewLC(files[i]->Size());
         TPtr8 fileNamePtr(fileName->Des());
         fileNamePtr.Copy(*files[i]);
-        iFile.Write(*fileName);
-        iFile.Write(newLine);
+
+        filenameBuf.Create(fileNamePtr.Length());
+        filenameBuf.Copy(fileNamePtr);
+        TFileText fileText ;
+        fileText.Set(file) ;
+        fileText.Seek(ESeekStart);
+        fileText.Write(filenameBuf);
         CleanupStack::PopAndDestroy();//Filename
-        iFile.Flush();
+        file.Flush();
         }
-    iFile.Close();
-    iFs.Close();
-    
+
+    file.Close();
+    fileSession.Close();    
     }
 
 static void MergeFilesL()
     {
     
-    RFs iSession;
-    RFile iExclude;
+    RFs fileSession;
+    RFile excludeFileName;
     
-    RFs iFs;
-    RFile iFile;
+    RFile fileName;
     TInt pos = 0;
     TInt size_of_script( 0 );
     TInt buffer_size( sizeof(TText) );
     TInt number_of_chars;
     
-    User::LeaveIfError(iSession.Connect());
-    TInt ret = iExclude.Open(iSession,_L("c:\\private\\100059C9\\excludelist.txt"),EFileRead);
+    User::LeaveIfError(fileSession.Connect());
+    TInt ret = excludeFileName.Open(fileSession,_L("c:\\private\\100059C9\\excludelist.txt"),EFileRead);
 
-    User::LeaveIfError(iFs.Connect());
-    TInt err1 = iFile.Open(iFs,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite);
-    
-    iFile.Seek(ESeekEnd,pos);
-    if ( ret != KErrNone || err1 != KErrNone)
+		if(ret != KErrNone)
+			{
+			RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL , MergeFiles : Failed to open the file"));
+			return;
+			}
+    ret = fileName.Open(fileSession,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite|EFileStreamText);
+    if ( ret != KErrNone)
             {
+            excludeFileName.Close();
             RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL , MergeFiles : Failed to open the file"));
             return;
             }
+    fileName.Seek(ESeekEnd,pos);
+    
     HBufC* buffer = HBufC::NewMaxLC( buffer_size );        
     TPtr8 bufferPtr( (TUint8*)buffer->Ptr(), buffer_size);
     
     TInt err(0);
-    err = iExclude.Size( size_of_script );
+    err = excludeFileName.Size( size_of_script );
     number_of_chars = size_of_script / sizeof(TText);
 
     TInt i(0);
@@ -111,51 +122,49 @@
        {
        if ( err == KErrNone )
             {
-            err = iExclude.Read( bufferPtr);                
+            err = excludeFileName.Read( bufferPtr);                
             }
-        iFile.Write(bufferPtr);
+        fileName.Write(bufferPtr);
         }
-    iFile.Flush();
-    iFile.Close();
-    iFs.Close();
+    fileName.Flush();
+    fileName.Close();
     
-    iExclude.Close();
-    iSession.Close();
+    excludeFileName.Close();
+    fileSession.Close();
+    CleanupStack::PopAndDestroy();//buffer
 
-    CleanupStack::PopAndDestroy();//buffer
-    
     }
 
 static HBufC* ExcludeListNameL( TChar aSystemDrive )
     {
     FUNC_LOG;
-
+		
     RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL"));
     
-    RFs iFs;
-    RFile iFile;
+    RFs fileSession;
+    RFile file;
     
     _LIT8(KFileName, "c:\\private\\100059C9\\excludelistcache.txt\n");
     TBuf8 <50> fileName;
     fileName.Copy(KFileName);
 
-    User::LeaveIfError(iFs.Connect());
+    User::LeaveIfError(fileSession.Connect());
     
     RDir dir;
-    if(dir.Open(iFs,_L("c:\\private\\100059C9\\"),KEntryAttNormal) != KErrNone)
+    if(dir.Open(fileSession,_L("c:\\private\\100059C9\\"),KEntryAttNormal) != KErrNone)
         {
-        iFs.MkDir(_L("c:\\private\\100059C9\\"));
+        User::LeaveIfError(fileSession.MkDir(_L("c:\\private\\100059C9\\")));
         }
     
-    TInt rev = iFile.Replace(iFs,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite);
+    TInt rev = file.Replace(fileSession,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite|EFileStreamText);
     
     RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL, Replace returned %d"),rev);
     
-    iFile.Write(fileName);
-    iFile.Flush();
-    iFile.Close();
-    iFs.Close();
-    
+    file.Flush();
+    file.Close();
+    dir.Close();
+    fileSession.Close();
+
     Swi::RSisRegistrySession session;
     CleanupClosePushL(session);
     User::LeaveIfError(session.Connect());
@@ -171,76 +180,97 @@
     CleanupClosePushL(entry);
     CleanupClosePushL(entry2);
     
-    
-    //No issues until here
-    RPointerArray<HBufC> allfiles;
+    RPointerArray<HBufC> registryFiles;
+    RPointerArray<HBufC> augmentedRegistryFiles;
     RPointerArray<HBufC> nonRemovableFiles;
     RPointerArray<HBufC> nonRemovableAugmentedFiles;
-    CleanupResetAndDestroyPushL(allfiles);
+    CleanupResetAndDestroyPushL(registryFiles);
+    CleanupResetAndDestroyPushL(augmentedRegistryFiles);
     CleanupResetAndDestroyPushL(nonRemovableFiles);
     CleanupResetAndDestroyPushL(nonRemovableAugmentedFiles);
     
-    //Logic starts
-    TInt count;
-    RPointerArray<Swi::CSisRegistryPackage> augmentationPackages;
-    CleanupResetAndDestroyPushL(augmentationPackages);
-    for ( TInt iter=0; iter<uidcount; iter++)
-        {
-        User::LeaveIfError(entry.Open(session,uids[iter]));
-        if(EFalse == entry.RemovableL())
-            {
-            entry.FilesL(nonRemovableFiles);
-            TInt fileCount = nonRemovableFiles.Count(); 
-            for (TInt z=fileCount-1; z>=0;z--)
-                {
-                TPtr firstChar(nonRemovableFiles[z]->Des());
-                if(firstChar.Mid(0,1) == _L("z"))
-                    {
-                    delete nonRemovableFiles[z];
-                    nonRemovableFiles.Remove(z);
-                    }
-                }
-            // Look for augmentations.
-            if(entry.IsAugmentationL())
-                {
-                entry.AugmentationsL(augmentationPackages);
-                count = entry.AugmentationsNumberL();
-                for (TInt i=0; i < count; ++i)
-                    {
-                    User::LeaveIfError(entry2.OpenL(session,*augmentationPackages[i]));
-                    if(EFalse == entry2.RemovableL())
-                        {
-                        entry2.FilesL(nonRemovableAugmentedFiles);
-                        for (TInt c=0; c<nonRemovableAugmentedFiles.Count();c++)
-                              {
-                              TPtr firstChar(nonRemovableAugmentedFiles[c]->Des());
-                              if(firstChar.Mid(0,1) == _L("z"))
-                                  {
-                                  delete nonRemovableAugmentedFiles[c];
-                                  nonRemovableAugmentedFiles.Remove(c);
-                                  }
-                              }
-                        }
-                    entry2.Close();
-                    }
-                }
-            }
-        entry.Close();
-        }
-    RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL Writing the file names to the excludelist.txt"));
+     TInt count;
+     RPointerArray<Swi::CSisRegistryPackage> augmentationPackages;
+     CleanupResetAndDestroyPushL(augmentationPackages);
+     for ( TInt iter=0; iter<uidcount; iter++)
+         {
+         User::LeaveIfError(entry.Open(session,uids[iter]));
+         if(EFalse == entry.RemovableL())
+             {
+             entry.FilesL(nonRemovableFiles);
+             entry.RegistryFilesL(registryFiles);
+             TInt fileCount = nonRemovableFiles.Count(); 
+             for (TInt z=fileCount-1; z>=0;z--)
+                 {
+                 TPtr firstChar(nonRemovableFiles[z]->Des());
+                 if(firstChar.Mid(0,1) == _L("z"))
+                     {
+                     delete nonRemovableFiles[z];
+                     nonRemovableFiles.Remove(z);
+                     }
+                 }
+             // Look for augmentations.
+             if(entry.IsAugmentationL())
+                 {
+                 entry.AugmentationsL(augmentationPackages);
+                 count = entry.AugmentationsNumberL();
+                 for (TInt i=0; i < count; ++i)
+                     {
+                     User::LeaveIfError(entry2.OpenL(session,*augmentationPackages[i]));
+                     if(EFalse == entry2.RemovableL())
+                         {
+                         entry2.FilesL(nonRemovableAugmentedFiles);
+                         entry2.RegistryFilesL(augmentedRegistryFiles);
+                         for (TInt c=0; c<nonRemovableAugmentedFiles.Count();c++)
+                               {
+                               TPtr firstChar(nonRemovableAugmentedFiles[c]->Des());
+                               if(firstChar.Mid(0,1) == _L("z"))
+                                   {
+                                   delete nonRemovableAugmentedFiles[c];
+                                   nonRemovableAugmentedFiles.Remove(c);
+                                   }
+                               }
+											}
+                     	entry2.Close();
+                     	}
+                 }
+             }
+         entry.Close();
+         }
+     RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL Writing the file names to the excludelist.txt"));
+ 
+     MergeFilesL();
+		 FileWriteL(nonRemovableAugmentedFiles);
+		 FileWriteL(augmentedRegistryFiles);
+		 FileWriteL(nonRemovableFiles);
+ 		 FileWriteL(registryFiles);
 
-		FileWriteL(nonRemovableFiles);
-    FileWriteL(nonRemovableAugmentedFiles);
-    MergeFilesL();
-    
-    CleanupStack::PopAndDestroy(8,&session);
+     TInt pos = 0;
+     User::LeaveIfError(fileSession.Connect());
+     User::LeaveIfError(file.Open(fileSession,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite|EFileStreamText));
+          
+     file.Seek(ESeekEnd,pos);
 
-    HBufC* buf = HBufC::NewLC( KExcludeListcache().Length() + KExcludeListPathNameLenExt );
-    TPtr bufPtr = buf->Des();
-    bufPtr.Append( aSystemDrive );
-    bufPtr.Append( KDriveDelimiter );
-    bufPtr.Append( KExcludeListcache );
-    CleanupStack::Pop( buf );
+     TBuf<KMaxFileName> configurationLine ;
+     TFileText fileText ;
+     fileText.Set(file) ;
+     fileText.Seek(ESeekStart);
+     configurationLine.Format(_L("c:\\private\\100059C9\\excludelistcache.txt")) ;
+     fileText.Write(configurationLine);
+     
+     file.Flush();
+     file.Close();
+     fileSession.Close();
+    
+     
+     CleanupStack::PopAndDestroy(9,&session);
+
+     HBufC* buf = HBufC::NewLC( KExcludeListcache().Length() + KExcludeListPathNameLenExt );
+     TPtr bufPtr = buf->Des();
+     bufPtr.Append( aSystemDrive );
+     bufPtr.Append( KDriveDelimiter );
+     bufPtr.Append( KExcludeListcache );
+     CleanupStack::Pop( buf );
     return buf;
     }
 
@@ -436,6 +466,14 @@
         aPath.Append( KScriptUidSeparator );
         INFO_1( "Script = '%S'", &aPath );
         }
+    else
+        {
+        RDebug::Print(_L("Resetting the KStartupFirstBoot value"));
+		CRepository* repository = CRepository::NewL(KCRUidStartup);
+        CleanupStack::PushL( repository );
+        repository->Reset(KStartupFirstBoot);
+        CleanupStack::PopAndDestroy( repository );
+        }
     }
 
 // ---------------------------------------------------------------------------
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/group/NitzRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/NitzRFSPlugin/group/NitzRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      NitzRFSPlugin.dll
+TARGET      nitzrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BF.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET NitzRFSPlugin.rsc
+  TARGET nitzrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/NitzRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/group/SipRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/SIPRFSPlugin/group/SipRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      SIPRFSPlugin.dll
+TARGET      siprfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2001959D.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET SIPRFSPlugin.rsc
+  TARGET siprfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SIPRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file coreapplicationuis/rfsplugins/StarterRFSPlugin/conf/starterrfsplugin.confml has changed
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/group/StarterRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/StarterRFSPlugin/group/StarterRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      StarterRFSPlugin.dll
+TARGET      starterrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BB.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET StarterRFSPlugin.rsc
+  TARGET starterrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/StarterRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/group/SyncMLRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/group/SyncMLRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      SyncMLRFSPlugin.dll
+TARGET      syncmlrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8BC.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET SyncMLRFSPlugin.rsc
+  TARGET syncmlrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/SyncMLRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/group/TelephonyRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/group/TelephonyRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      TelephonyRFSPlugin.dll
+TARGET      telephonyrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8C1.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET TelephonyRFSPlugin.rsc
+  TARGET telephonyrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/TelephonyRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/group/UnitconverterRFSPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/group/UnitconverterRFSPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -19,7 +19,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET      UnitconverterRFSPlugin.dll
+TARGET      unitconverterrfsplugin.dll
 
 TARGETTYPE	PLUGIN
 
@@ -34,7 +34,7 @@
 
 START RESOURCE 2000F8C0.rss
 #ifdef SYMBIAN_SECURE_ECOM 
-  TARGET UnitconverterRFSPlugin.rsc
+  TARGET unitconverterrfsplugin.rsc
 #endif 
 END
 
@@ -45,4 +45,4 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib       // Base library
-LIBRARY ECom.lib	    // ECom library
+LIBRARY ecom.lib	    // ECom library
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/UnitconverterRFSPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -13,6 +13,16 @@
 *
 * Description:  Build information file for RFS plugins.
 *
+*  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.
+* ==============================================================================
 */
 
 #include <platform_paths.hrh>
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/group/msgcentrerfsplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/msgcentrerfsplugin/group/msgcentrerfsplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -44,4 +44,4 @@
 LIBRARY         eikcore.lib             // Eikon library
 LIBRARY         euser.lib               // Base library
 LIBRARY         cone.lib                // Control environment library
-LIBRARY         muiu.lib                // For message centre reset
+LIBRARY         muiuutils.lib                // For message centre reset
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/msgcentrerfsplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/formatterrfsplugintest/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/msgcentrerfsplugintest.ini	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/msgcentrerfsplugintest.ini	Thu Jun 24 13:52:58 2010 +0100
@@ -19,6 +19,8 @@
 # Comment lines start with '#'-character.
 # See STIF TestFramework users guide.doc for instructions
 
+
+
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 # Set following test engine settings:
 #	- Set Test Reporting mode. TestReportMode's possible values are:
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/rfstestapp/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/rfstestapp/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/rfstestapp/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/rfstestapp/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/rfstestapp/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/init/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/testdatacreator/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/testdatacreator/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/testdatacreator/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/testdatacreator/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/sensordatacompensatorplugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -23,13 +23,13 @@
 
 PRJ_EXPORTS
 
-../data/sensordatacompensationui.rul               /epoc32/data/Z/private/10282bc4/rules/sensordatacompensationui.rul
-../data/sensordatacompensationui.rul               /epoc32/RELEASE/winscw/UDEB/Z/private/10282bc4/rules/sensordatacompensationui.rul
-../data/sensordatacompensationui.rul               /epoc32/RELEASE/winscw/UREL/Z/private/10282bc4/rules/sensordatacompensationui.rul
+../data/sensordatacompensationui.rul               /epoc32/data/z/private/10282bc4/rules/sensordatacompensationui.rul
+../data/sensordatacompensationui.rul               /epoc32/release/winscw/udeb/z/private/10282bc4/rules/sensordatacompensationui.rul
+../data/sensordatacompensationui.rul               /epoc32/release/winscw/urel/z/private/10282bc4/rules/sensordatacompensationui.rul
 
-../data/sensordatacompensationdevice.rul           /epoc32/data/Z/private/10282bc4/rules/sensordatacompensationdevice.rul
-../data/sensordatacompensationdevice.rul           /epoc32/RELEASE/winscw/UDEB/Z/private/10282bc4/rules/sensordatacompensationdevice.rul
-../data/sensordatacompensationdevice.rul           /epoc32/RELEASE/winscw/UREL/Z/private/10282bc4/rules/sensordatacompensationdevice.rul
+../data/sensordatacompensationdevice.rul           /epoc32/data/z/private/10282bc4/rules/sensordatacompensationdevice.rul
+../data/sensordatacompensationdevice.rul           /epoc32/release/winscw/udeb/z/private/10282bc4/rules/sensordatacompensationdevice.rul
+../data/sensordatacompensationdevice.rul           /epoc32/release/winscw/urel/z/private/10282bc4/rules/sensordatacompensationdevice.rul
 
 ../rom/sensordatacompensatorplugin.iby           CORE_MW_LAYER_IBY_EXPORT_PATH( sensordatacompensatorplugin.iby )
 
--- a/coreapplicationuis/sensordatacompensatorplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/BWINS/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/conf/sensordatacompensatorplgtest.cfg	Mon Feb 08 13:38:38 2010 +0000
+++ b/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/conf/sensordatacompensatorplgtest.cfg	Thu Jun 24 13:52:58 2010 +0100
@@ -16,6 +16,7 @@
 */
 
 
+
 // Publish&Subscribe definitions
 [Define]
 KSensrvChannelTypeIdAccelerometerXYZAxisData 270553214
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/data/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/adv/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/adv/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/adv/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/adv/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/adv/init/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_PhoneCmdhandler/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_PhoneCmdhandler/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_Rfs/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_Rfs/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_kefmapper/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/MT_kefmapper/Src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/data/rfs/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/init/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/coreapplicationuis/tsrc/public/basic/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/CNFTOOL/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/Design/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/INC/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/SRC/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file filehandling/fileconverterfw/TSRC/W7ALLCHR.DOC has changed
--- a/filehandling/fileconverterfw/TSRC/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/Tef/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/Tef/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file filehandling/fileconverterfw/documentation/SGL.GT0093.110_How_To_Implement_and_use_a_file converter_objectv1.4.doc has changed
--- a/filehandling/fileconverterfw/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/fileconverterfw/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filehandling/fileconverterfw/group/ConarcTest.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"ConarcTest.pkg EN"}
+
+; Vendor name
+: "ConarcTest"
+
+
+"\epoc32\data\z\conarctest\conarctest_run.bat"-"c:\conarctest_run.bat"
+"\epoc32\data\z\conarctest\conarctest_t_b64cnv.script"-"c:\conarctest\conarctest_t_b64cnv.script"
+"\epoc32\data\z\conarctest\conarctest_t_cnf.script"-"c:\conarctest\conarctest_t_cnf.script"
+"\epoc32\data\z\conarctest\conarctest_t_loadecomcnv.script"-"c:\conarctest\conarctest_t_loadecomcnv.script"
--- a/filehandling/fileconverterfw/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file filehandling/htmltorichtextconverter/documentation/CHTMLTOCRTCONVERTER test code.rtf has changed
--- a/filehandling/htmltorichtextconverter/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tdata/profiling/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tdata/testHtml/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/testdata/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/htmltorichtextconverter/tsrc/profilingtest.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/filehandling/htmltorichtextconverter/tsrc/profilingtest.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -22,6 +22,7 @@
 #include <e32test.h>
 #include <f32file.h>
 #include <e32math.h>
+#include <e32def_private.h>
 #include "CHtmlToCrtConverter.h"
 #include "CHtmlToCrtConvActive.h"
 
--- a/filehandling/richtexttohtmlconverter/Group/BLD.INF	Mon Feb 08 13:38:38 2010 +0000
+++ b/filehandling/richtexttohtmlconverter/Group/BLD.INF	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -17,6 +17,7 @@
 	DEFAULT
 
 PRJ_EXPORTS
+	./RichTextToHtmlConv.iby				/epoc32/rom/include/core/mw/richtexttohtmlconv.iby
 	./RichTextToHtmlConv.iby				/epoc32/rom/include/richtexttohtmlconv.iby
 
 PRJ_MMPFILES
--- a/filehandling/richtexttohtmlconverter/Group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/richtexttohtmlconverter/Src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/richtexttohtmlconverter/TSrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/richtexttohtmlconverter/Test/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/filehandling/richtexttohtmlconverter/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/flashliteapi_3_1/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/flashliteapi_3_1/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/flashliteapi_3_1/mmi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/flashliteapi_3_1/mmi/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/flashliteapi_3_1/ns/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/flashliteapi_3_1/ns/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/flashliteapi_3_1/viewerfw/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/flashliteapi_3_1/viewerfw/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/hwresourceadaptation/hwresourcemgruiplugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/hwresourceadaptation/hwresourcemgruiplugin/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/hwresourceadaptation/hwresourcemgruiplugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/hwresourceadaptation/hwresourcemgruiplugin/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/layers.sysdef.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/layers.sysdef.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -12,6 +12,7 @@
       <module name="">
         <unit unitID="sydo.appsupport.appsupport_plat.flash_mmi_service_interface_custom_api" name="sydo_appsupport_appsupport_plat_flash_mmi_service_interface_custom_api" bldFile="&layer_real_source_path;/appsupport_plat/flash_mmi_service_interface_custom_api/group" mrp="" filter="!sf_build" />
         <unit unitID="sydo.appsupport.appsupport_plat.flash_netscape_plugin_command_api" name="sydo_appsupport_appsupport_plat_flash_netscape_plugin_command_api" bldFile="&layer_real_source_path;/appsupport_plat/flash_netscape_plugin_command_api/group" mrp="" filter="!sf_build" />
+        <unit unitID="sydo.appsupport.coreapplicationuis.atcmdplugin" name="sydo_appsupport_appsupport_coreapplicationuis_atcmdplugin" bldFile="&layer_real_source_path;/coreapplicationuis/atcmdplugin/group" mrp="" filter="!oem_build" />
       </module>
     </layer>
   </systemModel>
--- a/mediakeys/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/KeyPublisherPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/KeyPublisherPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/KeyPublisherPlugin/group/KeyPublisherPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/mediakeys/KeyPublisherPlugin/group/KeyPublisherPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 
 #include <platform_paths.hrh>
 
-TARGET          KeyPublisherPlugin.DLL
+TARGET          keypublisherplugin.dll
 TARGETTYPE      ani
 UID             0x10003B22 0x1020724B
 
--- a/mediakeys/KeyPublisherPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/KeyPublisherPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/MMKeyBearer/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/MMKeyBearer/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/MMKeyBearer/group/MMKeyBearer.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/mediakeys/MMKeyBearer/group/MMKeyBearer.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,7 +21,7 @@
 #include <platform_paths.hrh>
 
 
-TARGET			MMKeyBearer.dll
+TARGET			mmkeybearer.dll
 
 // CAPABILITY      CAP_ECOM_PLUGIN 
 // capabilities are required as that of remconbearerplugin.dll
@@ -41,7 +41,7 @@
 SOURCEPATH      .
 
 START RESOURCE 10207235.rss
-target MMKeyBearer.rsc
+target mmkeybearer.rsc
 END
 
 
@@ -52,15 +52,14 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY 		euser.lib 
-LIBRARY			ECom.lib
+LIBRARY			ecom.lib
 LIBRARY 		c32.lib 
 LIBRARY 		remconbearerplugin.lib 
 LIBRARY 		remcontypes.lib
 LIBRARY 		flogger.lib
-LIBRARY         avkon.lib
-LIBRARY         akncapserverclient.lib
 LIBRARY         apparc.lib
 LIBRARY         eikcore.lib
+LIBRARY         lockclient.lib
 
 #include <comms-infras/commsdebugutility.mmh>
 #include "../../group/mediakeys.mmh"
--- a/mediakeys/MMKeyBearer/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/MMKeyBearer/inc/MMKeyBearerImplementation.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/mediakeys/MMKeyBearer/inc/MMKeyBearerImplementation.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 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"
@@ -26,7 +26,9 @@
 #include <remcon/remconbearerplugin.h>
 #include <remcon/remconbearerinterface.h>
 #include <remcon/messagetype.h>
-#include <AknCapServerClient.h>
+#include <keyguardaccessapi.h>
+
+
 
 #include "MMKeyBearerObserverPS.h"
 
@@ -155,8 +157,7 @@
         RProperty iProperty;
         
         // For keylock interaction
-        RAknUiServer iAknServer;
-        TBool iAknServerConnected;
-    };
+        CKeyguardAccessApi* iKeyguardAccess;
+        };
 
 #endif // __MMKEYBEARERIMPLEMENTATION_H__
--- a/mediakeys/MMKeyBearer/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -26,6 +26,7 @@
 #include <UsbWatcherInternalPSKeys.h>
 #include <usbpersonalityids.h>
 #include <PSVariables.h>   // Property values
+#include <keyguardaccessapi.h>
 
 // Include this once it is exported
 // #include <RemConExtensionApi.h>
@@ -74,7 +75,7 @@
     delete iMediaKeyObserver;
     delete iAccessoryVolKeyObserver;
     delete iUSBFileTransferObserver;
-    iAknServer.Close();
+    delete iKeyguardAccess;
     }
 
 // ---------------------------------------------------------
@@ -84,11 +85,10 @@
 //
 CMMKeyBearer::CMMKeyBearer(TBearerParams& aParams)
 :   CRemConBearerPlugin(aParams),
-    iUSBFileTransfer(KUsbWatcherSelectedPersonalityNone),
-    iAknServerConnected(EFalse)
+    iUSBFileTransfer(KUsbWatcherSelectedPersonalityNone)
     {
     FUNC_LOG;
-
+    
     //Pass
     }
 
@@ -105,6 +105,7 @@
     TRemConAddress addr;
     addr.BearerUid() = Uid();
     TInt err = Observer().ConnectIndicate(addr);
+    iKeyguardAccess = CKeyguardAccessApi::NewL();
 
     // Start Active object for listening key events from P&S
     TRAP_AND_LEAVE(
@@ -361,30 +362,10 @@
     // If events are from accessory device,then do not check for keypadlock
     if (aKeyType != EAccessoryVolumeKeys)
         {
-        TBool keysLocked = EFalse;
-        if (!(iAknServerConnected))  // Connect to server for first time
-            {
-            if(iAknServer.Connect() == KErrNone)
-                {
-                iAknServerConnected = ETrue;
-                }
-            else                   // If connection fails, then return
-                {
-                //Start the listener once again
-               if (aKeyType == ESideVolumeKeys)
-                    {
-                    iMMKeyBearerObserver->Start();
-                    }
-                if (aKeyType == EMediaKeys)
-                    {
-                    iMediaKeyObserver->Start();
-                    }
-                return ;
-                }
-            }
-        iAknServer.ShowKeysLockedNote(keysLocked);
+               
+        TInt err=iKeyguardAccess->ShowKeysLockedNote();
 
-        if (keysLocked)
+        if (err==KErrNone)
             {
             // Device is locked , Discard the key event
 
--- a/mediakeys/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/mediakeys/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/openenvutils/commandshell/copydatafile/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/copydatafile/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/copydatafile/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
Binary file openenvutils/commandshell/docs/test/SGL.GT0355.203 v1.0 PREQ1459_Test Specification.doc has changed
--- a/openenvutils/commandshell/docs/test/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/cat/src/cat.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/cat/src/cat.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// cat.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/commandshell/shell/commands/cat/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/cp/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/cp/src/cp.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/cp/src/cp.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,23 @@
 /*	$Id: cp.c,v 1.2 2000/08/14 16:26:08 amai Exp $	*/
 /*	$NetBSD: cp.c,v 1.14 1995/09/07 06:14:51 jtc Exp $	*/
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1988, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/commandshell/shell/commands/cp/src/cputils.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/cp/src/cputils.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,24 @@
 /*	$Id: utils.c,v 1.2 2000/08/14 16:26:08 amai Exp $	*/
 /*	$NetBSD: utils.c,v 1.6 1997/02/26 14:40:51 cgd Exp $	*/
 
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*-
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/commandshell/shell/commands/cp/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/find/docs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
Binary file openenvutils/commandshell/shell/commands/find/docs/findmanual.doc has changed
--- a/openenvutils/commandshell/shell/commands/find/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/find/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/find/inc/namespace.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/inc/namespace.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
 #ifndef __NAMESPACE_H__
 #define __NAMESPACE_H__
 /* ______________________________________________________________________
--- a/openenvutils/commandshell/shell/commands/find/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/find/src/find.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/find.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
 /*	$NetBSD: find.c,v 1.23 2006/10/11 19:51:10 apb Exp $	*/
 
-/*-© Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/*-
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/fnmatch.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/fnmatch.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
 /*	$NetBSD: fnmatch.c,v 1.21 2005/12/24 21:11:16 perry Exp $	*/
 
-/* © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/* 
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/function.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/function.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
 /*	$NetBSD: function.c,v 1.62 2007/02/06 13:25:01 elad Exp $	*/
 
-/*-© Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/*-© 
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/ls.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/ls.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
 /*	$NetBSD: ls.c,v 1.19 2006/10/11 19:51:10 apb Exp $	*/
 
-/*-  © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/*-  © 
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/main.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/main.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,26 @@
 
 /*	$NetBSD: main.c,v 1.26 2006/11/09 20:50:53 christos Exp $	*/
 
-/*- © Portions copyright (c) 2007-2008 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/*- © 
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/misc.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/misc.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
 /*	$NetBSD: misc.c,v 1.14 2006/10/11 19:51:10 apb Exp $	*/
 
-/*- © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+/*- © 
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/find/src/namespace.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/namespace.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /* ______________________________________________________________________
    namespace.c
    $Id: namespace.c,v 1.1 2003/06/29 00:22:47 jriehl Exp $
--- a/openenvutils/commandshell/shell/commands/find/src/options.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/find/src/options.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,24 @@
 /*	$NetBSD: options.c,v 1.26 2007/02/06 15:33:22 perry Exp $	*/
 
-/*-  © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+/*-  © 
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/grep/docs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
Binary file openenvutils/commandshell/shell/commands/grep/docs/manualforgrep.doc has changed
--- a/openenvutils/commandshell/shell/commands/grep/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/grep/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/grep/inc/grep.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/inc/grep.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-/* © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.*/
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$NetBSD: grep.h,v 1.3 2006/05/15 21:12:21 rillig Exp $	*/
 
 /*-
--- a/openenvutils/commandshell/shell/commands/grep/inc/namespace.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/inc/namespace.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
 #ifndef __NAMESPACE_H__
 #define __NAMESPACE_H__
 /* ______________________________________________________________________
--- a/openenvutils/commandshell/shell/commands/grep/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/grep/src/file.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/src/file.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-/* © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.*/
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$NetBSD: file.c,v 1.2 2006/05/15 21:12:21 rillig Exp $	*/
 
 /*-
--- a/openenvutils/commandshell/shell/commands/grep/src/grep.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/src/grep.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-/* © Portions copyright (c) 2007-2008 Symbian Software Ltd.  All rights reserved.*/
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$NetBSD: grep.c,v 1.3 2006/05/15 21:12:21 rillig Exp $	*/
 
 /*-
--- a/openenvutils/commandshell/shell/commands/grep/src/mmfile.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/src/mmfile.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-/*© Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.*/
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$NetBSD: mmfile.c,v 1.3 2006/05/15 21:12:21 rillig Exp $	*/
 
 /*-
--- a/openenvutils/commandshell/shell/commands/grep/src/namespace.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/src/namespace.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /* ______________________________________________________________________
    namespace.c
    $Id: namespace.c,v 1.1 2003/06/29 00:22:47 jriehl Exp $
--- a/openenvutils/commandshell/shell/commands/grep/src/util.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/grep/src/util.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-/* © Portions copyright (c) 2007-2008 Symbian Software Ltd.  All rights reserved.*/
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$NetBSD: util.c,v 1.4 2006/05/15 21:12:21 rillig Exp $	*/
 
 /*-
--- a/openenvutils/commandshell/shell/commands/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/inc/err.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/inc/err.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,22 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
 /*-
- * © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+ * © 
  * Copyright (c) 1993
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/ls/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/ls/src/cmp.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/cmp.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,25 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$Id: cmp.c,v 1.2 2000/08/22 22:20:23 amai Exp $	*/
 /*	$NetBSD: cmp.c,v 1.10 1996/07/08 10:32:01 mycroft Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*
  * Copyright (c) 1989, 1993
--- a/openenvutils/commandshell/shell/commands/ls/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/ls/src/getbsize.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/getbsize.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,25 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 //getbsize.c
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*-
  * Copyright (c) 1991, 1993
--- a/openenvutils/commandshell/shell/commands/ls/src/ls.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/ls.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,26 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 /*	$Id: ls.c,v 1.2 2000/08/22 22:20:23 amai Exp $	*/
 /*	$NetBSD: ls.c,v 1.18 1996/07/09 09:16:29 mycroft Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
+// © 
 //
 /*
  * Copyright (c) 1989, 1993, 1994
--- a/openenvutils/commandshell/shell/commands/ls/src/print.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/print.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,26 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 /*	$Id: print.c,v 1.2 2000/08/22 22:20:24 amai Exp $	*/
 /*	$NetBSD: print.c,v 1.15 1996/12/11 03:25:39 thorpej Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*
  * Copyright (c) 1989, 1993, 1994
--- a/openenvutils/commandshell/shell/commands/ls/src/stat_flags.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/stat_flags.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,26 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 /*	$Id: stat_flags.c,v 1.3 2000/08/26 09:22:51 amai Exp $	*/
 /*	$NetBSD: stat_flags.c,v 1.5 1995/09/07 06:43:01 jtc Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*-
  * Copyright (c) 1993
--- a/openenvutils/commandshell/shell/commands/ls/src/util.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/ls/src/util.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,25 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$Id: util.c,v 1.2 2000/08/22 22:20:24 amai Exp $	*/
 /*	$NetBSD: util.c,v 1.12 1995/09/07 06:43:02 jtc Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*
  * Copyright (c) 1989, 1993, 1994
--- a/openenvutils/commandshell/shell/commands/ps/docs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
Binary file openenvutils/commandshell/shell/commands/ps/docs/pscommand.doc has changed
--- a/openenvutils/commandshell/shell/commands/ps/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/ps/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/ps/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/src/err.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/src/err.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,23 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*-
- * © Portions copyright (c) 2007 Symbian Software Ltd.  All rights reserved.
+ * © 
  * Copyright (c) 1993
  *	The Regents of the University of California.  All rights reserved.
  *
--- a/openenvutils/commandshell/shell/commands/src/fts.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/src/fts.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,24 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*	$Id: fts.c,v 1.5 2000/11/25 16:33:36 arnd Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*-
  * Copyright (c) 1990, 1993, 1994
--- a/openenvutils/commandshell/shell/commands/touch/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/touch/src/touch.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/touch/src/touch.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,24 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
 /*	$OpenBSD: touch.c,v 1.3 1997/01/15 23:43:22 millert Exp $	*/
 /*	$NetBSD: touch.c,v 1.11 1995/08/31 22:10:06 jtc Exp $	*/
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
+// © 
 //
 /*
  * Copyright (c) 1993
--- a/openenvutils/commandshell/shell/commands/unzip/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/unzip/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/unzip/inc/unzip.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/unzip/inc/unzip.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,24 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* unzip.h -- IO for uncompress .zip files using zlib
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
-   
    Copyright (C) 1998-2005 Gilles Vollant
 
    This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g
--- a/openenvutils/commandshell/shell/commands/unzip/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/unzip/src/ioapi.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/unzip/src/ioapi.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,27 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* ioapi.c -- IO base function header for compress/uncompress .zip
    files using zlib + zip or unzip API
 
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
-   
+      
    Copyright (C) 1998-2005 Gilles Vollant    
    
 */
--- a/openenvutils/commandshell/shell/commands/unzip/src/miniunz.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/unzip/src/miniunz.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,25 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
    miniunz.c
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007-2008 Symbian Software Ltd. All rights reserved.
    Copyright (C) 1998-2005 Gilles Vollant
    
 */
--- a/openenvutils/commandshell/shell/commands/unzip/src/unzip.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/unzip/src/unzip.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,25 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* unzip.c -- IO for uncompress .zip files using zlib
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
-  
+ 
    Copyright (C) 1998-2005 Gilles Vollant
 
    Read unzip.h for more info
--- a/openenvutils/commandshell/shell/commands/zip/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/zip/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/zip/inc/zip.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/zip/inc/zip.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,24 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* zip.h -- IO for compress .zip files using zlib
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
    
    Copyright (C) 1998-2005 Gilles Vollant
 
--- a/openenvutils/commandshell/shell/commands/zip/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/commands/zip/src/ioapi.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/zip/src/ioapi.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,27 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* ioapi.c -- IO base function header for compress/uncompress .zip
    files using zlib + zip or unzip API
 
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
-   
+  
    Copyright (C) 1998-2005 Gilles Vollant
 
 */
--- a/openenvutils/commandshell/shell/commands/zip/src/minizip.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/zip/src/minizip.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,9 +1,24 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
 /*
    minizip.c
    Version 1.01e, February 12th, 2005
 
-   Portions copyright (c) 2007-2008 Symbian Software Ltd. All rights reserved.
-   
    Copyright (C) 1998-2005 Gilles Vollant
 */
 
--- a/openenvutils/commandshell/shell/commands/zip/src/zip.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/commands/zip/src/zip.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,26 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
 /* zip.c -- IO on .zip files using zlib
    Version 1.01e, February 12th, 2005
 
    27 Dec 2004 Rolf Kalbermatter
    Modification to zipOpen2 to support globalComment retrieval.
 
-   Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
    
    Copyright (C) 1998-2005 Gilles Vollant
 
--- a/openenvutils/commandshell/shell/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/inc/.indent.pro	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/.indent.pro	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+#
+# 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: 
+#
+
 --dont-format-comments
 --procnames-start-lines
 --no-parameter-indentation
--- a/openenvutils/commandshell/shell/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/inc/errcount.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/errcount.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,1 +1,18 @@
+/*
+* 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: 
+*
+*/
+
 #define ERRCOUNT	124
--- a/openenvutils/commandshell/shell/inc/poll.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/poll.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,22 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 /*-
  * Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
  * All rights reserved.
@@ -24,7 +43,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * © Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
  * $FreeBSD: src/sys/sys/poll.h,v 1.13 2002/07/10 04:47:25 mike Exp $
  */
 
--- a/openenvutils/commandshell/shell/inc/rlimits.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/rlimits.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /** rlimits.h                              **/
 /** architecture-customized limits for zsh **/
 
--- a/openenvutils/commandshell/shell/inc/sigcount.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/sigcount.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,2 +1,19 @@
+/*
+* 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: 
+*
+*/
+
 #define SIGCOUNT	31
 #define sigmsg(sig) ((sig) <= SIGCOUNT ? sig_msg[sig] : "unknown signal")
--- a/openenvutils/commandshell/shell/inc/tcp.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/tcp.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,21 @@
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * tcp.h - builtin FTP client
  *
--- a/openenvutils/commandshell/shell/inc/termios.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/termios.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//termios.h
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*-
  * Copyright (c) 1988, 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/commandshell/shell/inc/version.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/version.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,1 +1,18 @@
+/*
+* 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: 
+*
+*/
+
 #define ZSH_VERSION "4.2.6"
--- a/openenvutils/commandshell/shell/inc/zle_widget.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/zle_widget.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /** zle_widget.h                                **/
 /** indices of and pointers to internal widgets **/
 
--- a/openenvutils/commandshell/shell/inc/zshpaths.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/zshpaths.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,20 @@
+/*
+* 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: 
+*
+*/
+
 #define MODULE_DIR "/usr/local/lib/zsh/4.2.6"
 #define SITEFPATH_DIR "/usr/local/share/zsh/site-functions"
 #define FPATH_DIR "/usr/local/share/zsh/4.2.6/functions"
--- a/openenvutils/commandshell/shell/inc/zshxmods.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/inc/zshxmods.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,20 @@
+/*
+* 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: 
+*
+*/
+
 #define LINKED_XMOD_zshQsmain 1
 #ifdef DYNAMIC
 # define UNLINKED_XMOD_zshQsrlimits 1
--- a/openenvutils/commandshell/shell/src/builtin.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/builtin.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,20 @@
-//builtin.c - builtin commands
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007 - 2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/builtins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/src/builtins/rlimits.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/builtins/rlimits.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//rlimits.c - resource limit builtins
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/builtins/sched.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/builtins/sched.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// sched.c - execute commands at scheduled times
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/compat.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/compat.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,21 @@
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /* 
  * compat.c - compatibility routines for the deprived
  *
--- a/openenvutils/commandshell/shell/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/src/exec.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/exec.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// exec.c - command execution
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007 - 2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/glob.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/glob.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//glob.c - filename generation
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/hashtable.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/hashtable.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//hashtable.c - hash tables
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/hist.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/hist.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//hist.c - history expansion
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/init.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/init.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//init.c - main loop and initialization routines
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/input.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/input.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//input.c - read and store lines of input
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/jobs.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/jobs.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// jobs.c - job control
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/lex.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/lex.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// lex.c - lexical analysis
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/linklist.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/linklist.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// linklist.c - linked lists
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/loop.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/loop.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// loop.c - loop execution
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/math.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/math.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// math.c - mathematical expression evaluation
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/mem.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/mem.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// mem.c - memory management
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modentry.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modentry.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
 #include "zsh.mdh"
 
 int setup_ _((Module));
--- a/openenvutils/commandshell/shell/src/module.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/module.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// module.c - deal with dynamic modules
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/cap.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/cap.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// cap.c - POSIX.1e (POSIX.6) capability set manipulation
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/clone.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/clone.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,22 @@
 #ifndef __SYMBIAN32__
-// clone.c - start a forked instance of the current shell on a new terminal
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/datetime.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/datetime.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// datetime.c - parameter interface to langinfo via curses
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/src/modules/errnames.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/errnames.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /** errnames.c                                 **/
 /** architecture-customized errnames.c for zsh **/
 
--- a/openenvutils/commandshell/shell/src/modules/example.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/example.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// example.c - an example module for zsh
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/files.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/files.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// files.c - file operation builtins
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/langinfo.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/langinfo.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// langinfo.c - parameter interface to langinfo via curses
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/mapfile.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/mapfile.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// mapfile.c - associative array interface to external files
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/mathfunc.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/mathfunc.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// mathfunc.c - basic mathematical functions for use in math evaluations
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/parameter.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/parameter.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// parameter.c - parameter interface to zsh internals
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/socket.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/socket.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// socket.c - Unix domain socket module
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/stat.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/stat.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// stat.c - stat builtin interface to system call
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/system.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/system.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// sysread.c - interface to system read/write
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/tcp.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/tcp.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// tcp.c - TCP module
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/termcap.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/termcap.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// termcap.c - termcap manipulation through curses
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/terminfo.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/terminfo.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// terminfo.c - parameter interface to terminfo via curses
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/zftp.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/zftp.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,21 @@
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * zftp.c - builtin FTP client
  *
--- a/openenvutils/commandshell/shell/src/modules/zprof.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/zprof.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,21 @@
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * zprof.c - a shell function profiling module for zsh
  *
--- a/openenvutils/commandshell/shell/src/modules/zpty.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/zpty.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,22 @@
 #ifndef __SYMBIAN32__
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * zpty.c - sub-processes with pseudo terminals
  *
--- a/openenvutils/commandshell/shell/src/modules/zselect.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/zselect.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,22 @@
 // zselect.c - builtin support for select system call
-//
-// © Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/modules/zutil.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/modules/zutil.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,22 @@
 #ifndef __SYMBIAN32__
-// zutil.c - misc utilities
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/options.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/options.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// options.c - shell options
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/params.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/params.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// params.c - parameters
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/parse.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/parse.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// parse.c - parser
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/pattern.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/pattern.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,6 +1,21 @@
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * pattern.c - pattern matching
  *
--- a/openenvutils/commandshell/shell/src/prompt.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/prompt.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,5 @@
-// prompt.c - construct zsh prompts
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/signals.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/signals.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,5 @@
-// signals.c - signals handling code
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/signames.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/signames.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,19 @@
+/*
+* 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: 
+*
+*/
 /** signames.c                                 **/
 /** architecture-customized signames.c for zsh **/
 
--- a/openenvutils/commandshell/shell/src/subst.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/subst.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,23 @@
-// subst.c - various substitutions
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/utils.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/utils.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// utils.c - miscellaneous utilities
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/src/watch.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/src/watch.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,8 +1,22 @@
 #ifndef __SYMBIAN32__
-// watch.c - login/logout watching
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * This file is part of zsh, the Z shell.
  *
--- a/openenvutils/commandshell/shell/test/docs/Readme.txt	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-Tests to be run (order does not matter)
-
-1) . ./zshtests_auto1.sh
-2) . ./zshtests_auto2.sh
-3) . ./greptest2.sh > greptest2.txt
-4) . ./findtest1.sh > findtest1.txt
-
-5) . ./findtest2.sh > findtest2.txt
-6) . ./findtest3.sh > findtest3.txt
-
-7) . ./greptest1.sh > greptest1.txt
-
-
-Run Manually the following tests ( Do not redirect the output )
-
-1. readtest_manual.sh
-2. ls.sh
-3) . ./externalcmd_test.sh - This test will not have any output, but should not hang the shell
-4) zshtests_manual.sh
-5) Enter atleast 10 commands at the zsh prompt and then execute . ./fctest_manual.sh
--- a/openenvutils/commandshell/shell/test/docs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/test/scripts/aliastest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/aliastest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,17 +1,17 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
 
 init()
     {
--- a/openenvutils/commandshell/shell/test/scripts/autoloadtest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/autoloadtest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/breaktest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/breaktest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/cdtest1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/cdtest1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/cdtest2.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/cdtest2.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/continuetest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/continuetest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/dirstest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/dirstest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/commandshell/shell/test/scripts/dottest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/dottest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/evaltest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/evaltest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/exittest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/exittest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/fctest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/fctest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/fctest_manual.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/fctest_manual.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/findtest1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/findtest1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/findtest2.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/findtest2.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/findtest3.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/findtest3.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/functionstest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/functionstest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/greptest1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/greptest1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/greptest2.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/greptest2.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/ls.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/ls.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,21 @@
-#opyright (c) Symbian Software Ltd 2007. All rights reserved.
+#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+#
+
+
 #!/home/guest/vinodp/local/bin/zsh
 ###################################
 # Test cases for internal commands#
--- a/openenvutils/commandshell/shell/test/scripts/miniziptest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/miniziptest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/printtest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/printtest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/pstest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/pstest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/pwdtest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/pwdtest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/readtest_manual.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/readtest_manual.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/redirecttest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/redirecttest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/sanity_auto.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/sanity_auto.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/setopttest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/setopttest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/settest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/settest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/shifttest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/shifttest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/typesettest1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/typesettest1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/typesettest2.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/typesettest2.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/unhashtest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/unhashtest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/unsetopttest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/unsetopttest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/unsettest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/unsettest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/unziptest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/unziptest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/util_dot1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/util_dot1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/util_set17.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/util_set17.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/util_source.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/util_source.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/whencetest.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/whencetest.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/zshtests_auto1.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/zshtests_auto1.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/zshtests_auto2.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/zshtests_auto2.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/scripts/zshtests_manual.sh	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/commandshell/shell/test/scripts/zshtests_manual.sh	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of 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/openenvutils/commandshell/shell/test/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/telnetserver/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/telnetserver/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/telnetserver/inc/telnetd.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/inc/telnetd.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,23 @@
 //telnetd.h
 //
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/inc/termios.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/inc/termios.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-//termios.h
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*-
  * Copyright (c) 1988, 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/authenc.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/authenc.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// authenc.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*-
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/telnetserver/src/global.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/global.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// global.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/mini_inetd.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/mini_inetd.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// mini_inetd.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1995 - 2001 Kungliga Tekniska Hgskolan
  * (Royal Institute of Technology, Stockholm, Sweden).
--- a/openenvutils/telnetserver/src/slc.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/slc.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// slc.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/state.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/state.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// state.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/sys_term.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/sys_term.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// sys_term.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/telnetd.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/telnetd.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// telnetd.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007-2008. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/termstat.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/termstat.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// termstat.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/src/utility.c	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/src/utility.c	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// utility.c
-//
-// © Portions Copyright (c) Symbian Software Ltd 2007. All rights reserved.
-//
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
 /*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
--- a/openenvutils/telnetserver/test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/openenvutils/telnetserver/test/group/ethernetced_dynamicIP.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/test/group/ethernetced_dynamicIP.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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/openenvutils/telnetserver/test/group/ethernetced_staticIP.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/openenvutils/telnetserver/test/group/ethernetced_staticIP.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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/openenvutils/telnetserver/test/utils/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/printingsupport/printinguisupport/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file printingsupport/printinguisupport/group/PRINTSDK.DOC has changed
--- a/printingsupport/printinguisupport/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/group/print.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/printingsupport/printinguisupport/group/print.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef __PRINT_IBY__
 #define __PRINT_IBY__
 
-#ifdef SYMBIAN_EXCLUDE_PRINT
+#ifndef __UPNP_PRINT_FRAMEWORK
 REM Feature PRINT is not included in this ROM
 #else
 REM Print
--- a/printingsupport/printinguisupport/inc/PRNSETUP.H	Mon Feb 08 13:38:38 2010 +0000
+++ b/printingsupport/printinguisupport/inc/PRNSETUP.H	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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,10 +29,6 @@
 #include <prninf.h>
 #endif
 
-#ifndef SYMBIAN_ENABLE_MIXED_HEADERS
-#include <printinguisupport/prnpath.h>
-#endif
-
 /** 
 @publishedAll 
 @released */
--- a/printingsupport/printinguisupport/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/src_prev/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/src_prn/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/tef/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/printingsupport/printinguisupport/tef/scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/data/ssyreference_config_template.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,149 @@
+<!-- ssyreference_config_template.xml -->
+<!-- SsyReference configuration file template -->
+<!-- ************************************************************* -->
+<!-- * NOTE. DO NOT LEAVE ANY COMMENTS IN THE ACTUAL CONFIG FILE * -->
+<!-- ************************************************************* -->
+<SsyReferenceConfig>
+    <SsyGeneralInformation>
+        <!-- General information for SSY itself -->
+        <Properties>
+        <!-- General properties of the sensor -->
+    	  <!-- TSensrvProperty. Each property has its own item defined in here -->
+        	
+        	<!-- Property example 1 -->
+        	<PropertyItem PropertyId="TSensrvPropertyId"
+        	    ItemIndex="Item index in channel data structure"
+        		PropertyValue="Value of the property"
+        		MaxValue="Maximum value of data"
+        		MinValue="Minimum value of data"
+        		ReadOnly="Read only or modifiable"
+        		PropertyType="TSensrvPropertyType">
+            </PropertyItem>
+            <!-- Property example 2 -->
+        	<PropertyItem PropertyId="TSensrvPropertyId"
+        		ItemIndex="Item index in channel data structure"
+        		PropertyValue="Value of the property"
+        		MaxValue="Maximum value of data"
+        		MinValue="Minimum value of data"
+        		ReadOnly="Read only or modifiable"
+        		PropertyType="TSensrvPropertyType">
+            </PropertyItem>
+        </Properties>
+    </SsyGeneralInformation>
+    <ChannelInformationGroup ChannelCount="2">
+    	<!-- Channel definitions. Each channel item contains all information of one channel -->
+    	<!-- Channel example 1 -->
+    	<ChannelItem 
+    		ChannelId="This value is updated runtime when Sensrv has defined channel IDs" 
+    		ContextType="TSensrvContextType" 
+    		Quantity="TSensrvQuantity" 
+    		ChannelType="TSensrvChannelTypeId" 
+    		Location="Location of the sensor" 
+    		Vendor="Vendor ID"
+    		DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h">
+    		  <!-- One channel definition. Each channel has its own item block -->
+        	<!-- TSensrvChannelInfo. Contains information of this channel; Context type, Quantity etc. --> 
+        	
+        	<!-- Contains properties of this channel. -->
+        	<Properties>
+        	  <!-- TSensrvProperty. Each property has its own item defined in here -->
+        		<!-- Property example 3 -->
+    		    <PropertyItem PropertyId="TSensrvPropertyId"
+    		      ItemIndex="Item index in channel data structure"
+    		      PropertyValue="Value of the property"
+    		      MaxValue="Maximum value of data"
+    		      MinValue="Minimum value of data"
+    		      ReadOnly="Read only or modifiable"
+    		      PropertyType="TSensrvPropertyType">
+        		</PropertyItem>
+    		    <!-- Property example 4 -->
+    		    <PropertyItem PropertyId="TSensrvPropertyId"
+    		      ItemIndex="Item index in channel data structure"
+    		      PropertyValue="Value of the property"
+    		      MaxValue="Maximum value of data"
+    		      MinValue="Minimum value of data"
+    		      ReadOnly="Read only or modifiable"
+    		      PropertyType="TSensrvPropertyType">
+        		</PropertyItem>
+        	</Properties>
+
+            <!-- Channel data. Information of generated data by this channel.  -->
+            <!-- There may be several different (yet same type) data items. Next data item is added to  -->
+            <!-- buffer after the previous data items (all according to count) are added and last Interval is passed -->
+             
+            <ChannelData StartIntervalMs="Time in milliseconds to start filling buffer after StartChannelData()">
+                <ChannelDataItem DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h" count="Number of this data items to be added into buffer (with the same values)" 
+    			     									 IntervalMs="Time in milliseconds after next data item is added into buffer">
+                    <!-- Content of this channel item is dependent on the type of this channel. It must be one and only one of the following -->
+                    <SsyRefChannelDataAxis XAxis="Integer value of X Axis" YAxis="Integer value of Y Axis" ZAxis="Integer value of Z Axis" ><!-- This type has DataTypeID 0x00010001 --></SsyRefChannelDataAxis>
+                    <SsyRefChannelDataTapping Direction="direction of tapping"><!-- This type has DataTypeID 0x00010002 --></SsyRefChannelDataTapping>
+                </ChannelDataItem>
+
+                <!-- Next channel data item -->
+                <ChannelDataItem DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h" count="Number of this data items to be added into buffer (with the same values)" 
+    			     									 IntervalMs="Time in milliseconds after next data item is added into buffer">
+                    <!-- Content of this channel item is dependent on the type of this channel. It must be one and only one of the following -->
+                    <SsyRefChannelDataAxis XAxis="Integer value of X Axis" YAxis="Integer value of Y Axis" ZAxis="Integer value of Z Axis" ><!-- This type has DataTypeID 0x00010001 --></SsyRefChannelDataAxis>
+                    <SsyRefChannelDataTapping Direction="direction of tapping"><!-- This type has DataTypeID 0x00010002 --></SsyRefChannelDataTapping>
+                </ChannelDataItem>
+            </ChannelData>
+    	</ChannelItem>
+    	<!-- Channel example 2 -->
+    	<ChannelItem 
+    		ChannelId="This value is updated runtime when Sensrv has defined channel IDs" 
+    		ContextType="TSensrvContextType" 
+    		Quantity="TSensrvQuantity" 
+    		ChannelType="TSensrvChannelTypeId" 
+    		Location="Location of the sensor" 
+    		Vendor="Vendor ID"
+    		DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h">
+    		<!-- One channel definition. Each channel has its own item block -->
+        	<!-- TSensrvChannelInfo. Contains information of this channel; Context type, Quantity etc. -->
+        	
+            <!-- Contains properties of this channel. -->
+        	<Properties>
+        	  	 <!-- TSensrvProperty. Each property has its own item defined in here -->
+        		 <!-- Property example 5 -->
+    		    <PropertyItem PropertyId="TSensrvPropertyId"
+    		      ItemIndex="Item index in channel data structure"
+    		      PropertyValue="Value of the property"
+    		      MaxValue="Maximum value of data"
+    		      MinValue="Minimum value of data"
+    		      ReadOnly="Read only or modifiable"
+    		      PropertyType="TSensrvPropertyType">
+        		</PropertyItem>
+
+        		<!-- Property example 6 -->
+    		    <PropertyItem PropertyId="TSensrvPropertyId"
+    		      ItemIndex="Item index in channel data structure"
+    		      PropertyValue="Value of the property"
+    		      MaxValue="Maximum value of data"
+    		      MinValue="Minimum value of data"
+    		      ReadOnly="Read only or modifiable"
+    		      PropertyType="TSensrvPropertyType">
+        	    </PropertyItem>
+        	</Properties>
+
+            <!-- Channel data. Information of generated data by this channel.  -->
+            <!-- There may be several different (yet same type) data items. Next data item is added to  -->
+            <!-- buffer after the previous data items (all according to count) are added and last Interval is passed -->
+             
+            <ChannelData StartIntervalMs="Time in milliseconds to start filling buffer after StartChannelData()">
+                <ChannelDataItem DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h" count="Number of this data items to be added into buffer (with the same values)" 
+    			     									 IntervalMs="Time in milliseconds after next data item is added into buffer">
+                    <!-- Content of this channel item is dependent on the type of this channel. It must be one and only one of the following -->
+                    <SsyRefChannelDataAxis XAxis="Integer value of X Axis" YAxis="Integer value of Y Axis" ZAxis="Integer value of Z Axis" ><!-- This type has DataTypeID 0x00010001 --></SsyRefChannelDataAxis>
+                    <SsyRefChannelDataTapping Direction="direction of tapping"><!-- This type has DataTypeID 0x00010002 --></SsyRefChannelDataTapping>
+                    </ChannelDataItem>
+
+                <!-- Next channel data item -->
+                <ChannelDataItem DataTypeId="data type ID identifies data type defined here. See sensrvchanneldatatypes.h" count="Number of this data items to be added into buffer (with the same values)" 
+    			     									 IntervalMs="Time in milliseconds after next data item is added into buffer">
+                    <!-- Content of this channel item is dependent on the type of this channel. It must be one and only one of the following -->
+                    <SsyRefChannelDataAxis XAxis="Integer value of X Axis" YAxis="Integer value of Y Axis" ZAxis="Integer value of Z Axis" ><!-- This type has DataTypeID 0x00010001 --></SsyRefChannelDataAxis>
+                    <SsyRefChannelDataTapping Direction="direction of tapping"><!-- This type has DataTypeID 0x00010002 --></SsyRefChannelDataTapping>
+                </ChannelDataItem>
+            </ChannelData>
+    	</ChannelItem>
+    </ChannelInformationGroup>
+</SsyReferenceConfig>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/data/ssyreferenceconfig.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,144 @@
+<!-- ssyreferenceconfig.xml -->
+<!-- SSY reference configuration file-->
+<SsyReferenceConfig>
+    <SsyGeneralInformation>
+    </SsyGeneralInformation>
+    <ChannelInformationGroup ChannelCount="2">
+    	<ChannelItem
+    		ChannelId="5"
+    		ContextType="2" 
+    		Quantity="11" 
+    		ChannelType="0x10205081" 
+    		Location="NoLoc"
+    		Vendor="SsyRefVendor"
+    		DataTypeId="0x1020507F">
+    			<Properties>
+        		<PropertyItem PropertyId="0x00000002"
+    		      ItemIndex="0"
+    		      PropertyValue="100"
+    		      MaxValue="150"
+    		      MinValue="0"
+    		      ReadOnly="0"
+    		      PropertyType="1">
+    		     	<!-- Channel property, data rate, mandatory for all channels, see KSensrvPropIdDataRate  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000004"
+    		      ItemIndex="0"
+    		      PropertyValue="1"
+    		      MaxValue="0"
+    		      MinValue="0"
+    		      ReadOnly="1"
+    		      PropertyType="1">
+    		     	<!-- Channel property, availability of the channel, mandatory for all channels, see KSensrvPropIdAvailability  -->
+        		</PropertyItem>
+          </Properties>
+          <ChannelData StartIntervalMs="3000">
+            <ChannelDataItem  DataTypeId="0x1020507F" count="1" IntervalMs="3000">
+              <SsyRefChannelDataTapping Direction="0x01"></SsyRefChannelDataTapping>
+            </ChannelDataItem>
+					  <ChannelDataItem DataTypeId="0x1020507F" count="1" IntervalMs="5000">
+              <SsyRefChannelDataTapping Direction="0x02"></SsyRefChannelDataTapping>
+            </ChannelDataItem>            
+          </ChannelData>
+    	</ChannelItem>
+    	<ChannelItem
+    		ChannelId="2"
+    		ContextType="2" 
+    		Quantity="10" 
+    		ChannelType="0x1020507E" 
+    		Location="Event%d" 
+    		Vendor="SsyRefVendor"
+    		DataTypeId="0x1020507E">
+        	<Properties>
+        		<!-- First four properties has same property Id, they are grouped to array property -->
+        		<!-- First is array info -2, which tells currently selected property, value = 1 -->
+        		<!-- Max and Min values tells max and min property array indexes, not the actual values -->
+        		<!-- Array index is mandatory only for array type of properties, by default it is -1 -->
+        		<PropertyItem PropertyId="0x00000002"
+        			ArrayIndex="-2"
+    		      ItemIndex="0"
+    		      PropertyValue="1"
+    		      MaxValue="2"
+    		      MinValue="0"
+    		      ReadOnly="0"
+    		      PropertyType="1">
+    		     	<!-- Channel property, data rate, mandatory for all channels, see KSensrvPropIdDataRate  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000002"
+        			ArrayIndex="0"
+    		      ItemIndex="0"
+    		      PropertyValue="10"
+    		      MaxValue="0"
+    		      MinValue="0"
+    		      ReadOnly="1"
+    		      PropertyType="1">
+    		     	<!-- Channel property, data rate, mandatory for all channels, see KSensrvPropIdDataRate  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000002"
+        			ArrayIndex="1"
+    		      ItemIndex="0"
+    		      PropertyValue="30"
+    		      MaxValue="0"
+    		      MinValue="0"
+    		      ReadOnly="1"
+    		      PropertyType="1">
+    		     	<!-- Channel property, data rate, mandatory for all channels, see KSensrvPropIdDataRate  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000002"
+        			ArrayIndex="2"
+    		      ItemIndex="0"
+    		      PropertyValue="50"
+    		      MaxValue="0"
+    		      MinValue="0"
+    		      ReadOnly="1"
+    		      PropertyType="1">
+    		     	<!-- Channel property, data rate, mandatory for all channels, see KSensrvPropIdDataRate  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000004"
+    		      ItemIndex="0"
+    		      PropertyValue="1"
+    		      MaxValue="0"
+    		      MinValue="0"
+    		      ReadOnly="1"
+    		      PropertyType="1">
+    		     	<!-- Channel property, availability of the channel, mandatory for all channels, see KSensrvPropIdAvailability  -->
+        		</PropertyItem>
+    		    <PropertyItem PropertyId="0x00000005"
+    		      ItemIndex="1"
+    		      PropertyValue="14.56"
+    		      MaxValue="128"
+    		      MinValue="1"
+    		      ReadOnly="0"
+    		      PropertyType="2">
+    		     	<!-- Channel item property, measure range for X-axis (item index = 1), see KSensrvPropIdMeasureRange  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000005"
+    		      ItemIndex="2"
+    		      PropertyValue="20.65"
+    		      MaxValue="256"
+    		      MinValue="1"
+    		      ReadOnly="0"
+    		      PropertyType="2">
+    		     	<!-- Channel item property, measure range for Y-axis (item index = 2), see KSensrvPropIdMeasureRange  -->
+        		</PropertyItem>
+        		<PropertyItem PropertyId="0x00000005"
+    		      ItemIndex="3"
+    		      PropertyValue="10.56"
+    		      MaxValue="128"
+    		      MinValue="1"
+    		      ReadOnly="0"
+    		      PropertyType="2">
+    		     	<!-- Channel item property, measure range for Z-axis (item index = 3), see KSensrvPropIdMeasureRange  -->
+        		</PropertyItem>
+        	</Properties>
+          <ChannelData StartIntervalMs="5000">
+            <ChannelDataItem DataTypeId="0x1020507E" count="3" IntervalMs="4000">
+              <SsyRefChannelDataAxis XAxis="-50" YAxis="-32" ZAxis="44" ></SsyRefChannelDataAxis>
+            </ChannelDataItem>
+            <ChannelDataItem DataTypeId="0x1020507E" count="4" IntervalMs="5000">
+              <SsyRefChannelDataAxis XAxis="22" YAxis="49" ZAxis="55" ></SsyRefChannelDataAxis>
+            </ChannelDataItem>
+        </ChannelData>
+    	</ChannelItem>    	    
+    	</ChannelInformationGroup>
+</SsyReferenceConfig>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+// bld.inf
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+PRJ_PLATFORMS
+    DEFAULT
+
+PRJ_EXPORTS
+    ssyreference.iby                		/epoc32/rom/include/ssyreference.iby
+
+    // Export config to SensorServers private folder.
+    // For emulator use.
+    ../data/ssyreferenceconfig.xml  		/epoc32/release/winscw/udeb/z/refssy/ssyreferenceconfig.xml
+    ../data/ssyreferenceconfig.xml  		/epoc32/release/winscw/urel/z/refssy/ssyreferenceconfig.xml
+
+    // For hardware use.
+    ../data/ssyreferenceconfig.xml  		/epoc32/data/z/refssy/ssyreferenceconfig.xml
+
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+	../inc/ssyreferenceaccelerometer.h		/epoc32/include/sensors/channels/ssyreferenceaccelerometer.h
+#endif
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+	../inc/ssyreferencemagnetometer.h		/epoc32/include/sensors/channels/ssyreferencemagnetometer.h
+#endif
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+	../inc/ssyreferenceorientation.h		/epoc32/include/sensors/channels/ssyreferenceorientation.h
+#endif
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+	../inc/ssyreferenceproximity.h			/epoc32/include/sensors/channels/ssyreferenceproximity.h
+#endif
+
+PRJ_MMPFILES
+    ssyreferenceplugin.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/group/ssyreference.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,27 @@
+// ssyreference.iby
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#ifndef SSYREFERENCE_IBY
+#define SSYREFERENCE_IBY
+
+#include <gmxml.iby>
+
+ECOM_PLUGIN(ssyreferenceplugin.dll, ssyreferenceplugin.rsc)
+data=DATAZ_\refssy\ssyreferenceconfig.xml       \refssy\ssyreferenceconfig.xml 
+#endif // SSYREFERENCE_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/group/ssyreferenceplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,58 @@
+// ssyreferenceplugin.mmp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include <sensors/spi/sensrvresource.hrh> 
+
+TARGET          ssyreferenceplugin.dll
+TARGETTYPE      plugin
+VENDORID        0x70000001
+
+// ECom Dll recognition UID followed by the unique UID for this dll
+UID             0x10009D8D 0x10205089
+
+CAPABILITY      SENSOR_PLUGIN_CAPABILITIES
+
+SOURCEPATH      ../src
+SOURCE          ssyreferencechanneldataprovider.cpp
+SOURCE          ssyreferencecontrol.cpp
+SOURCE          ssyreferencepropertyprovider.cpp
+SOURCE          ssyreferencechannel.cpp
+SOURCE          ssyreferenceconfig.cpp
+SOURCE          ssyreferencecmdhandler.cpp
+SOURCE          ecomentrypoint.cpp
+
+USERINCLUDE     ../src
+
+SYSTEMINCLUDE   /epoc32/include
+SYSTEMINCLUDE   /epoc32/include/ecom
+SYSTEMINCLUDE   /epoc32/include/sensors
+SYSTEMINCLUDE	/epoc32/include/sensors/spi
+SYSTEMINCLUDE   /epoc32/include/sensors/channels
+
+// The resource name should have to be same as the third UID above
+START RESOURCE  ../src/10205089.rss
+TARGET          ssyreferenceplugin.rsc
+END
+
+LIBRARY         euser.lib
+LIBRARY         ecom.lib
+LIBRARY         sensrvutil.lib
+LIBRARY         xmlparser.lib      // for XML parser
+LIBRARY         efsrv.lib
+LIBRARY         xmldom.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/group/syslibs_sensors_ssyreference.history.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<relnotes schema="1.0.0" name="Reference SSY">
+  <purpose>
+    Referencey SSY for testing the Sensors Framework.
+  </purpose>
+
+  <deliverystep number="1120" name="PREQ2039: Base Services: Sensor Server (tr2.1.5 Prototype)" osproject="Sphinx" revision="002">
+    <preq number="2039" title="Sensor server">
+      Update to Sensors framework as part of the Core OS 2 project.
+    </preq>
+    <milestone project="GT0461" number="3.2"/>
+  </deliverystep>
+  <deliverystep number="1105" name="PREQ2039: Base Services: Sensor Server (TR2 Prototype)" osproject="Sphinx" revision="001">
+    <preq number="2039" title="Sensor server">
+      Adding Reference SSY to Symbian OS as part of the Core OS 2 project.
+    </preq>
+    <cr number="1603" title="Bring PREQ2039 (Sensor server) into the scope of Sphinx"/>
+    <milestone project="GT0461" number="3.1"/>
+  </deliverystep>
+
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/group/syslibs_sensors_ssyreference.mrp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,10 @@
+component	syslibs_sensors_ssyreference
+
+source	\sf\mw\appsupport\sensorsupport\testsensor
+
+exports	\sf\mw\appsupport\sensorsupport\testsensor\group
+binary	\sf\mw\appsupport\sensorsupport\testsensor\group	all
+
+notes_source	\component_defs\release.src
+
+ipr T
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/inc/ssyreferenceaccelerometer.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,256 @@
+// ssyreferenceaccelerometer.h
+
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalAll Sensor framework Reference SSY header file
+ @test
+*/
+
+
+#ifndef SSYREFERENCEACCELEROMETER_H
+#define SSYREFERENCEACCELEROMETER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <sensors/sensrvtypes.h> 
+
+
+// ACCELEROMETER RELATED CHANNELS 
+
+/**
+* - Name:          Accelerometer XYZ-axis data channel type
+* - Type:          Rawdata
+* - Datatype:      TSensrvAccelerometerAxisData
+* - Description:   Accelerometer x-, y-, z-axis data  
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdAccelerometerXYZAxisData = 0x1020507E;
+
+// ACCELEROMETER RELATED PROPERTIES
+
+/**
+* - Name:         Axis active
+* - Type:         TInt 
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Indicates is sensor axis activated.
+*                 Value is one if the axis is activated, zero otherwise.
+*/
+const TSensrvPropertyId KSensrvPropIdAxisActive = 0x00001001;
+
+/**
+* - Name:         Axis threshold value
+* - Type:         TReal
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Threshold value for a sensor channel
+*/
+const TSensrvPropertyId KSensrvPropIdAxisThresholdValue = 0x00001002;
+
+// ACCELEROMETER RELATED DATATYPES
+
+/**
+* Accelerometer axis data type
+*/
+class TSensrvAccelerometerAxisData 
+    {
+public:
+    /**
+    * Channel data type Id number
+    */      
+    static const TSensrvChannelDataTypeId KDataTypeId = 0x1020507E;
+
+    /**
+     * Channel data type index numbers
+     */
+	enum TSensrvAccelerometerAxisDataIndexes
+          {
+           ETimeStamp = 0,
+           EAxisX,
+           EAxisY,
+           EAxisZ
+          }; 
+
+public:
+    /**
+    * - Item name:   Sampling time.
+    * - Item Index:  0
+    * - Conditions:  None
+    * - Description: Timestamp for a sample.
+    */   
+    TTime iTimeStamp;    
+
+    /**
+    * - Item name:   Accelerometer x-axis 
+    * - Item Index:  1
+    * - Conditions:  Single limit and range 
+    * - Description: Accelerometer values from x-axis 
+    */
+    TInt iAxisX;  
+
+    /**
+    * - Item name:   Accelerometer y-axis 
+    * - Item Index:  2
+    * - Conditions:  Single limit and range 
+    * - Description: Accelerometer values from y-axis 
+    */ 
+    TInt iAxisY;  
+
+    /**
+    * - Item name:   Accelerometer z-axis 
+    * - Item Index:  3
+    * - Conditions:  Single limit and range 
+    * - Description: Accelerometer values from z-axis 
+    */
+    TInt iAxisZ;  
+    };
+
+
+// TAPPING RELATED CHANNELS 
+
+/**
+* - Name:          Wakeup event channel type
+* - Type:          Event
+* - Datatype:      TSensrvTappingData
+* - Description:   Wakeup events 
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdAccelerometerWakeupData = 0x1020507F;
+
+/**
+* - Name:          Double tapping event channel type
+* - Type:          Event
+* - Datatype:      TSensrvTappingData
+* - Description:   Double tapping events 
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdAccelerometerDoubleTappingData = 0x10205081;
+
+// TAPPING RELATED PROPERTIES
+
+/**
+* - Name:         Tapping axis active
+* - Type:         TInt 
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Indicates is sensor axis activated.
+*                 Value is one if the axis is activated, zero otherwise.
+*/
+const TSensrvPropertyId KSensrvPropIdTappingAxisActive = 0x00001001;
+
+/**
+* - Name:         Tapping axis threshold value
+* - Type:         TReal
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Threshold value for a sensor channel
+*/
+const TSensrvPropertyId KSensrvPropIdTappingAxisThresholdValue = 0x00001002;
+
+/**
+* - Name:         Tap duration in milliseconds
+* - Type:         TInt
+* - Scope:        Channel property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Tapping duration setting
+*/
+const TSensrvPropertyId KSensrvPropIdTapDurationValue = 0x00001003;
+
+/**
+* - Name:         Double tap latency 
+* - Type:         TInt
+* - Scope:        Channel property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Double tap latency in milliseconds
+*/
+const TSensrvPropertyId KSensrvPropIdDblTapLatency = 0x00001004;
+
+/**
+* - Name:         Double tap interval
+* - Type:         TInt
+* - Scope:        Channel property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Double tap interval in milliseconds
+*/
+const TSensrvPropertyId KSensrvPropIdDblTapInterval = 0x00001005;
+
+
+
+// TAPPING RELATED DATATYPES
+
+/**
+* Direction of the tapping data. If direction (plus or minus) is not known, 
+* direction is, for example in x-axis case 
+* KSensrvAccelerometerDirectionXplus | KSensrvAccelerometerDirectionXminus
+*/
+const TUint8 KSensrvAccelerometerDirectionXplus 	= 0x01;
+const TUint8 KSensrvAccelerometerDirectionXminus 	= 0x02;
+const TUint8 KSensrvAccelerometerDirectionYplus 	= 0x04;
+const TUint8 KSensrvAccelerometerDirectionYminus 	= 0x08;
+const TUint8 KSensrvAccelerometerDirectionZplus 	= 0x10;
+const TUint8 KSensrvAccelerometerDirectionZminus 	= 0x20;
+
+/**
+* Tapping data type
+*/
+class TSensrvTappingData 
+    {
+public:
+    /**
+    * Channel data type Id number
+    */      
+    static const TSensrvChannelDataTypeId KDataTypeId = 0x1020507F;
+
+	/**
+    * Channel data type index numbers
+    */
+	enum TSensrvAccelerometerAxisDataIndexes
+          {
+          ETimeStamp = 0,
+          EDirection
+          };
+
+public:
+    /**
+    * - Item name:   Sampling time.
+    * - Item Index:  0
+    * - Conditions:  None
+    * - Description: Timestamp for a sample.
+    */   
+    TTime iTimeStamp;    
+    
+    /**
+    * - Item name:   Tapping direction bitmask
+    * - Item Index:  1
+    * - Conditions:  Binary
+    * - Description: Direction bitmask of the tapping event. 
+    *                See constant definitions above.
+    */
+    TUint32 iDirection;  
+    };
+
+#endif //SSYREFERENCEACCELEROMETER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/inc/ssyreferencemagnetometer.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,170 @@
+// ssyreferencemagnetometer.h
+
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalAll Sensor framework Reference SSY header file
+ @test
+*/
+
+
+#ifndef SSYREFERENCEMAGNETOMETER_H
+#define SSYREFERENCEMAGNETOMETER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <sensors/sensrvtypes.h> 
+
+
+// MAGNETOMETER RELATED CHANNELS 
+
+/**
+* - Name:          Magnetometer XYZ-axis data channel type
+* - Type:          Rawdata
+* - Datatype:      TSensrvMagnetometerAxisData
+* - Description:   Magnetometer x-, y-, z-axis data  
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdMagnetometerXYZAxisData = 0x2000BEE0;
+
+
+// MAGNETOMETER RELATED PROPERTIES
+
+/**
+* - Name:        Name of the property
+* - Type:        Defines type of the property (TInt/TReal/TBuf)
+* - Scope:       Defines a property scope. Property can be defined for a channel, 
+*                for a specific item in a channel or for a server related to 
+*                channel.
+* - Mandatory:   Defines is property mandatory
+* - Capability:  Capabilities needed to set this property
+* - Description: Description of the property
+*/
+
+/**
+* - Name:         Auto calibration active
+* - Type:         TInt 
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Indicates is auto calibration active.
+*                 Value is one if calibration is activated, zero otherwise.
+*/
+const TSensrvPropertyId KSensrvPropAutoCalibrationActive = 0x00001006;
+
+/**
+* - Name:         Calibration status
+* - Type:         TInt 
+* - Scope:        Channel item property
+* - Mandatory:    No
+* - Capability:   None
+* - Description:  Indicates the calibration level.
+*                 Calibration level scales between minimum and maximum value.
+*                 Maximum indicates that calibration level is at its best
+*                 level. Minimum indicates that calibration is undefined.
+*/
+const TSensrvPropertyId KSensrvPropCalibrationLevel = 0x00001007;
+
+// MAGNETOMETER RELATED DATATYPES
+
+/**
+* Magnetometer axis data type
+*/
+class TSensrvMagnetometerAxisData 
+    {
+public:
+    /**
+    * Channel data type Id number
+    */      
+    static const TSensrvChannelDataTypeId KDataTypeId = 0x2000BEE0;
+
+    /**
+    * Channel data type index numbers
+    */  
+    enum TSensrvMagnetometerAxisDataIndexes
+        {
+        ETimeStamp = 0,
+        EAxisX,
+        EAxisY,
+        EAxisZ
+        };
+
+public:
+
+    /**
+    * - Item name:   Sampling time.
+    * - Item Index:  0
+    * - Conditions:  None
+    * - Description: Timestamp for a sample.
+    */   
+    TTime iTimeStamp;    
+
+    /**
+    * - Item name:   Magnetometer x-axis 
+    * - Item Index:  1
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from x-axis 
+    */
+    TInt iAxisXRaw;
+
+    /**
+    * - Item name:   Magnetometer y-axis 
+    * - Item Index:  2
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from y-axis 
+    */ 
+    TInt iAxisYRaw;
+
+    /**
+    * - Item name:   Magnetometer z-axis 
+    * - Item Index:  3
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from z-axis 
+    */
+    TInt iAxisZRaw;
+    
+    /**
+    * - Item name:   Magnetometer x-axis 
+    * - Item Index:  1
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from x-axis 
+    */
+    TInt iAxisXCalibrated;
+
+    /**
+    * - Item name:   Magnetometer y-axis 
+    * - Item Index:  2
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from y-axis 
+    */ 
+    TInt iAxisYCalibrated;
+
+    /**
+    * - Item name:   Magnetometer z-axis 
+    * - Item Index:  3
+    * - Conditions:  Single limit and range 
+    * - Description: Magnetometer values from z-axis 
+    */
+    TInt iAxisZCalibrated;
+    };
+
+#endif //SSYREFERENCEMAGNETOMETER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/inc/ssyreferenceorientation.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,172 @@
+// ssyreferenceorientation.h
+
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalAll Sensor framework Reference SSY header file
+ @test
+*/
+
+
+#ifndef SSYREFERENCEORIENTATION_H
+#define SSYREFERENCEORIENTATION_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <sensors/sensrvtypes.h> 
+
+
+// ORIENTATION RELATED CHANNELS
+
+/**
+* - Name:          Orientation event channel type
+* - Type:          Event
+* - Datatype:      TSensrvOrientationData
+* - Description:   Orientation events
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdOrientationData = 0x10205088; 
+
+/**
+* - Name:          Rotation event channel type
+* - Type:          Event
+* - Datatype:      TSensrvRotationData
+* - Description:   Rotation events
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdRotationData = 0x10205089; 
+
+// ORIENTATION RELATED DATATYPES
+
+class TSensrvOrientationData
+    {
+public:
+    /**
+    * Channel data type Id number
+    */      
+    static const TSensrvChannelDataTypeId KDataTypeId = 0x10205088;
+
+    /**
+    * Channel data type index numbers
+    */
+    enum TSensrvOrientationEventIndexes
+        {
+        ETimeStamp = 0,
+        EDeviceOrientation
+        }; 
+
+    /**
+    * Possible device orientations
+    */
+    enum TSensrvDeviceOrientation
+        {
+	    EOrientationUndefined = 0,
+	    EOrientationDisplayUp,
+	    EOrientationDisplayDown,
+	    EOrientationDisplayLeftUp,
+	    EOrientationDisplayRightUp,
+	    EOrientationDisplayUpwards,
+	    EOrientationDisplayDownwards	
+        };
+        
+public:
+        
+    /**
+    * - Item name:   Sampling time
+    * - Item Index:  0
+    * - Description: Timestamp for a sample
+    */   
+    TTime iTimeStamp;
+
+    /**
+    * - Item name:   Device orientation
+    * - Item Index:  1
+    * - Description: Contains one of the six basic orientations of the device
+    */   
+    TSensrvDeviceOrientation iDeviceOrientation;    
+    };
+
+
+class TSensrvRotationData
+    {
+public:
+    /**
+    * Channel data type Id number
+    */      
+    static const TSensrvChannelDataTypeId KDataTypeId = 0x10205089;
+    
+    /**
+    * Rotation axis value equals -1 when it cannot be defined. 
+    * The undefined situation varies depending on the sensor type. 
+    * In the case of an accelerometer, the rotation value cannot be defined 
+    * when the corresponding axis is parallel to the gravitational force or
+    * the device is in motion. In the case of a magnetometer, there are
+    * difficulties in measuring values, when the axis is parallel to the
+    * magnetic field.
+    */
+    static const TInt KSensrvRotationUndefined = -1; 
+
+    /**
+    * Channel data type index numbers
+    */ 
+    enum TSensrvRotationDataIndexes
+        {
+        ETimeStamp = 0,          
+        EDeviceRotationAboutXAxis,
+        EDeviceRotationAboutYAxis,
+        EDeviceRotationAboutZAxis,
+        };
+
+public:
+    /**
+    * - Item name:   Sampling time.
+    * - Item Index:  0
+    * - Description: Timestamp for a sample
+    */   
+    TTime iTimeStamp;
+  
+    /**
+    * - Item name:   Rotation about x-axis
+    * - Item Index:  1 
+    * - Description: Positive rotation in Cartesian coordinate system about the x-axis.
+    *                If the value cannot be defined it is set to KSensrvRotationUndefined.
+    */   
+    TInt iDeviceRotationAboutXAxis;  
+
+    /**
+    * - Item name:   Rotation about y-axis
+    * - Item Index:  2
+    * - Description: Positive rotation in Cartesian coordinate system about the y-axis.
+    *                If the value cannot be defined it is set to KSensrvRotationUndefined.
+    */   
+    TInt iDeviceRotationAboutYAxis;  
+      
+
+    /**
+    * - Item name:   Rotation about z-axis
+    * - Item Index:  3 
+    * - Description: Positive rotation in Cartesian coordinate system about the z-axis.
+    *                If the value cannot be defined it is set to KSensrvRotationUndefined.
+    */   
+    TInt iDeviceRotationAboutZAxis;  
+    };
+
+#endif //SSYREFERENCEORIENTATION_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/inc/ssyreferenceproximity.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,101 @@
+// ssyreferenceproximity.h
+
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalAll Sensor framework Reference SSY header file
+ @test
+*/
+
+
+#ifndef SSYREFERENCEPROXIMITY_H
+#define SSYREFERENCEPROXIMITY_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <sensors/sensrvtypes.h> 
+
+
+// PROXIMITY RELATED CHANNELS
+
+/**
+* - Name: Proximity data channel
+* - Type: Event
+* - Datatype: TSensrvProximityMonitorData
+* - Description: Proximity status 
+*/
+const TSensrvChannelTypeId KSensrvChannelTypeIdProximityMonitor = 0x2000E585;
+
+// PROXIMITY RELATED DATATYPES
+
+/**
+* Proximity monitoring data type
+*/
+class TSensrvProximityData
+	{
+public:
+	/**
+	* Channel data type Id number
+	*/ 
+	static const TSensrvChannelDataTypeId KDataTypeId = 0x2000E585;
+
+    /**
+    * Channel data type index numbers
+    */ 
+    enum TSensrvProximityDataIndexes
+        {
+        ETimeStamp = 0,
+        EState
+        };
+
+    /**
+    * Possible values for proximito state
+    */ 
+    enum TProximityState
+        {
+        EProximityUndefined = 0,
+        EProximityIndiscernible,
+        EProximityDiscernible
+        };
+
+public:
+
+    /**
+    * - Item name:   Sampling time.
+    * - Item Index:  0
+    * - Conditions:  None
+    * - Description: Timestamp for a sample.
+    */   
+    TTime iTimeStamp; 
+
+	/**
+    * - Item name: Proximity state
+    * - Item Index: 0
+    * - Conditions: None
+    * - Description: -
+    */ 
+    TProximityState iProximityState;
+
+};
+
+#endif //SSYREFERENCEPROXIMITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/10205089.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,80 @@
+// 10205089.rss
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include <sensors/spi/sensrvresource.hrh>
+#include <ecom/registryinfov2.rh>
+
+//  RESOURCE DEFINITIONS 
+// -----------------------------------------------------------------------------
+// 
+// Declares info for SSYReference ECom plugin
+//
+// -----------------------------------------------------------------------------
+
+RESOURCE REGISTRY_INFO SSYReferencePlugin
+    {
+    // UID for the DLL. See ssyreferenceplugin.mmp
+    resource_format_version = RESOURCE_FORMAT_VERSION_2;
+    dll_uid = 0x10205089;
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            // UID of interface that is implemented
+            interface_uid = KSsyControlInterfaceUid;
+            implementations = 
+                {
+                BINARY_IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x10205088;
+                    version_no         = 1;
+                    display_name       = "SSYReferencePlugin";
+                    default_data       = {
+                                         // Double tap channel
+                                         0x01, // ChannelInfoVersion
+                                         0x2E, //  ChannelInfoLength
+                                         0x1E, // Flags
+                                         0x81, 0x50, 0x20, 0x10, // ChannelType
+                                         0x02, 0x00, 0x00, 0x00, // ContextType
+                                         0x0B, 0x00, 0x00, 0x00, // Quantity
+                                         0x05, 0x4e, 0x6f, 0x4c, 0x6f, 0x63, // Location: NoLoc
+                                         0x0C, 0x53, 0x73, 0x79, 0x52, 0x65, 0x66, 0x56, 0x65, 0x6E, 0x64, 0x6F, 0x72, // VendorId: SsyRefVendor
+                                         0x7F, 0x50, 0x20, 0x10, // ChannelDataTypeId
+                                         0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ChannelSecurityPolicy
+                                         
+                                         // Accelerometer channel
+                                         0x01, // ChannelInfoVersion
+                                         0x30, //  ChannelInfoLength
+                                         0x1E, // Flags
+                                         0x7E, 0x50, 0x20, 0x10, // ChannelType
+                                         0x02, 0x00, 0x00, 0x00, // ContextType
+                                         0x0A, 0x00, 0x00, 0x00, // Quantity
+                                         0x07, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x25, 0x64, // Location  
+                                         0x0C, 0x53, 0x73, 0x79, 0x52, 0x65, 0x66, 0x56, 0x65, 0x6E, 0x64, 0x6F, 0x72, // VendorId: SsyRefVendor
+                                         0x7E, 0x50, 0x20, 0x10, // ChannelDataTypeId
+                                         0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF // ChannelSecurityPolicy
+
+                                         };
+                    opaque_data        = {};
+                    }
+                };
+            }
+        };
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ecomentrypoint.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+// ecomentrypoint.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+
+// INCLUDE FILES
+#include <e32std.h>
+#include <ecom/implementationproxy.h>
+#include "ssyreferencecontrol.h"
+
+// Define the interface UIDs
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY( 0x10205088,
+                                CSsyReferenceControl::NewL )
+    };
+
+// The one and only exported function that is the ECom entry point
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy
+        (TInt& aTableCount)
+    {
+    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencechannel.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,443 @@
+// ssyreferencechannel.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include <sensors/spi/ssycallback.h>                     // MSsyCallback
+#include "ssyreferencechannel.h"
+#include "ssyreferencecontrol.h"             // SSY Control
+#include "ssyreferencepropertyprovider.h"    // iChannelPropertyProvider
+#include "ssyreferencechanneldataprovider.h" // iChannelDataProvider
+#include "ssyreferencetrace.h"
+#include "ssyreferencecmdhandler.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannel::CSsyReferenceChannel( CSsyReferenceControl& aSsyControl, TSensrvChannelInfo aChannelInfo ) :
+    iSsyControl( aSsyControl ),
+    iChannelInfo( aChannelInfo ),
+    iState( ESsyReferenceChannelIdle )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::CSsyReferenceChannel()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::CSsyReferenceChannel() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ConstructL()" ) ) );
+
+    // Create command handler
+    iCmdHandler = CSsyReferenceCmdHandler::NewL( *this );
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ConstructL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannel* CSsyReferenceChannel::NewL( CSsyReferenceControl& aSsyControl, TSensrvChannelInfo aChannelInfo )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::NewL()" ) ) );
+    CSsyReferenceChannel* self = new ( ELeave ) CSsyReferenceChannel( aSsyControl, aChannelInfo );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannel::~CSsyReferenceChannel()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::~CSsyReferenceChannel()" ) ) );
+
+    // In case channel is not closed before destruction, providers are not deleted
+    if ( iChannelDataProvider )
+        {
+        delete iChannelDataProvider;
+        iChannelDataProvider = NULL;
+        }
+    
+    if ( iChannelPropertyProvider )
+        {
+        delete iChannelPropertyProvider;
+        iChannelPropertyProvider = NULL;
+        }
+
+    if ( iCmdHandler )
+        {
+        delete iCmdHandler;
+        iCmdHandler = NULL;
+        }
+
+    iProperties.Reset();
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::~CSsyReferenceChannel() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::ChannelId
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceChannel::ChannelId()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ChannelId() - %i" ), iChannelInfo.iChannelId ) );
+    return iChannelInfo.iChannelId;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::SsyControl
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceControl& CSsyReferenceChannel::SsyControl() const
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::SsyControl()" ) ) );
+    return iSsyControl;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::SsyCmdHandler
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceCmdHandler& CSsyReferenceChannel::CommandHandler() const
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::SsyCmdHandler()" ) ) );
+    return *iCmdHandler;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::FindPropertyL
+// ---------------------------------------------------------------------------
+//
+TSensrvProperty& CSsyReferenceChannel::FindPropertyL( 
+    const TSensrvPropertyId aPropertyId, 
+    TInt aItemIndex,
+    TInt aArrayIndex )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::FindPropertyL()" ) ) );
+    TSensrvProperty* property = NULL;
+    TBool propertyFound( EFalse );
+
+    // Search property
+    for ( TInt i = 0; i < iProperties.Count() && !propertyFound; i++ )
+        {
+        property = static_cast<TSensrvProperty*>( &iProperties[i] );
+
+        // Compare property IDs and array index
+        if ( property->GetPropertyId() == aPropertyId )
+            {
+            // Compare item index if it is given
+            if ( ( KErrNotFound == aItemIndex ) || ( property->PropertyItemIndex() == aItemIndex ) )
+                {
+                // Correct property ID is found, now check is it array type of property.
+                // Either array indexes must match or propertys array index has to be array info
+                if ( ( property->GetArrayIndex() == aArrayIndex ) || 
+                     ( ( property->GetArrayIndex() == ESensrvArrayPropertyInfo ) && 
+                       ( ESensrvSingleProperty == aArrayIndex ) ) )
+                    {
+                    // Correct array index found
+                    propertyFound = ETrue;    
+                    }
+                }
+            }
+        }
+
+    // Leave if not found
+    if ( !propertyFound )
+        {
+        iSsyControl.FindPropertyL( aPropertyId, aArrayIndex, *property );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::FindPropertyL() - return" ) ) );
+    return *property;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::FindAndUpdatePropertyL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::FindAndUpdatePropertyL( const TSensrvProperty& aProperty )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::FindAndUpdatePropertyL()" ) ) );
+    TBool propertyFound( EFalse );
+
+    // Search property
+    for ( TInt i = 0; i < iProperties.Count() && !propertyFound; i++ )
+        {
+        // Compare property IDs
+        if ( iProperties[i].GetPropertyId() == aProperty.GetPropertyId() )
+            {
+            // Compare item index if it is given
+            if ( ( KErrNotFound != aProperty.PropertyItemIndex() ) && 
+                 ( iProperties[i].PropertyItemIndex() == aProperty.PropertyItemIndex() ) )
+                {
+                // Property found -> update if possible
+                if ( iProperties[i].ReadOnly() )
+                    {
+                    User::Leave( KErrAccessDenied );
+                    }
+                // If modifiable, get type and update value
+                switch ( iProperties[i].PropertyType() )
+                    {
+                    case ESensrvIntProperty:
+                        {
+                        TInt value( 0 );
+                        aProperty.GetValue( value );
+                        iProperties[i].SetValue( value );
+                        break;
+                        }
+                    case ESensrvRealProperty:
+                        {
+                        TReal value( 0 );
+                        aProperty.GetValue( value );
+                        iProperties[i].SetValue( (TReal) value );
+                        break;
+                        }
+                    case ESensrvBufferProperty:
+                        {
+                        TBuf8<20> propValue;
+                        aProperty.GetValue( propValue );
+                        iProperties[i].SetValue( propValue );
+                        break;
+                        }
+                    default:
+                        {
+                        break;
+                        }
+                    }
+                propertyFound = ETrue;
+                }
+            }
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::FindPropertyL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::GetProperties
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::GetProperties( RSensrvPropertyList& aPropertyList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::GetProperties()" ) ) );
+    // Copy properties one by one to param aPropertyList
+    TInt propCount( iProperties.Count() );
+    RSensrvPropertyList propList( propCount );
+
+    for ( TInt i = 0; i < propCount; i++ )
+        {
+        propList.Append( iProperties[i] );
+        }
+
+    aPropertyList = propList;
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::GetProperties() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::UpdateState
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::UpdateState( const TSsyReferenceChannelState aNewState )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::UpdateState() - %i" ), aNewState ) );
+    iState = aNewState;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::ProcessResponse
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::ProcessResponse( TSsyReferenceMsg* aMessage )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ProcessResponse()" ) ) );
+    
+    if ( aMessage ) 
+        {
+        switch ( aMessage->Function() )
+            {
+            case ESsyReferenceOpenChannelResp:
+                {
+                // Open channel specific handling here
+                TRAPD( err, HandleOpenChannelRespL( aMessage->Error() ) );
+                if ( KErrNone != err )
+                    {
+                    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ProcessResponse() - Error opening channel: %i" ), err ) );
+                    }
+                break;
+                }
+            case ESsyReferenceDataItemReceived:
+                {
+                // Send data item to data provider
+                TRAPD( err, iChannelDataProvider->ChannelDataReceivedL( aMessage ) );
+                if ( KErrNone != err )
+                    {
+                    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ProcessResponse() - Error receiving data: %i" ), err ) );
+                    }
+                break;  
+                }
+            case ESsyReferenceCloseChannelResp:
+                {
+                // Close channel specific handling here
+                HandleCloseChannelResp();
+                break;  
+                }
+            default:
+                {
+                // This command was not intended to process here, try Control class
+                iSsyControl.ProcessResponse( aMessage );    
+                COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ProcessResponse() - Unknown function" ) ) );
+                }
+            }
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::ProcessResponse() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::OpenChannel
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceChannel::OpenChannel()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::OpenChannel()" ) ) );
+
+    TInt err( KErrAlreadyExists );
+
+    // Check that this channel is not already open
+    if ( ESsyReferenceChannelIdle == iState )
+        {
+        // Update state and issue request. Will continue in HandleOpenChannelResp
+        UpdateState( ESsyReferenceChannelOpening );
+
+        // Create message with function spesific information
+        // and pass it to command handler
+        err = iCmdHandler->ProcessCommand( TSsyReferenceMsg( ChannelId(), ESsyReferenceOpenChannel ) );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::OpenChannel() - return" ) ) );
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::HandleOpenChannelResp
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::HandleOpenChannelRespL( const TInt aError )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::HandleOpenChannelResp()" ) ) );
+
+    // Open channel asynhronously and complete request with MSsyCallback::ChannelOpened() when
+    // channel is opened.
+
+    // Create instance of the data provider of this channel
+    iChannelDataProvider = CSsyReferenceChannelDataProvider::NewL( *this );
+    // Create instance of the property provider of this channel
+    iChannelPropertyProvider = CSsyReferencePropertyProvider::NewL( *this );
+
+    TInt error( aError );
+
+    // If channel opening succeeds, update state to Open
+    if ( KErrNone == aError )
+        {
+        // Update state to Open
+        UpdateState( ESsyReferenceChannelOpen );
+        // Get channel properties
+        TRAP( error, iSsyControl.SsyConfig().GetChannelPropertiesL( ChannelId(), iProperties ) );
+        }
+    else
+        {
+        // Channel opening failed, back to idle
+        UpdateState( ESsyReferenceChannelIdle ); 
+        }
+
+    // Complete transaction
+    iSsyControl.SsyCallback().ChannelOpened( ChannelId(),
+                                error,
+                                iChannelDataProvider,
+                                iChannelPropertyProvider );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::HandleOpenChannelResp() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::CloseChannel
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceChannel::CloseChannel()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::CloseChannel()" ) ) );
+
+    TInt err( KErrNotFound );
+
+    // Check that this channel is open
+    if ( ESsyReferenceChannelOpen == iState )
+        {
+        // Update state and issue request. Will continue in HandleCloseChannelResp
+        UpdateState( ESsyReferenceChannelClosing );
+        // Create message with function spesific information
+        // and pass it to command handler
+        err = iCmdHandler->ProcessCommand( TSsyReferenceMsg( ChannelId(), ESsyReferenceCloseChannel ) );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::CloseChannel() - return" ) ) );
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannel::HandleCloseChannelResp
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannel::HandleCloseChannelResp()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::HandleCloseChannelResp()" ) ) );
+
+    // Close channel and complete request with MSsyCallback::ChannelClosed() when
+    // channel is closed.
+
+    // Delete providers
+    delete iChannelDataProvider;
+    iChannelDataProvider = NULL;
+
+    delete iChannelPropertyProvider;
+    iChannelPropertyProvider = NULL;
+
+    // Update state to idle
+    UpdateState( ESsyReferenceChannelIdle );
+
+    // Reset properties
+    iProperties.Reset();
+
+    // Complete transaction
+    iSsyControl.SsyCallback().ChannelClosed( ChannelId() );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannel::HandleCloseChannelResp() - return" ) ) );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencechannel.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,228 @@
+// ssyreferencechannel.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SSYREFERENCECHANNEL_H
+#define SSYREFERENCECHANNEL_H
+
+#include <e32base.h>
+#include <sensors/sensrvtypes.h>
+#include "ssyreferenceconfig.h"
+
+class CSsyReferenceControl;
+class CSsyReferenceChannelDataProvider;
+class CSsyReferencePropertyProvider;
+class CSsyReferenceCmdHandler;
+
+/**
+ *  Main control class for SSY. Controls sensor basic functionality and provides mandatory 
+ *  ECOM interface specific things.
+ */
+class CSsyReferenceChannel : public CBase
+    {
+
+public:
+
+    /**
+     * Enumeration of the state of this channel
+     */
+    enum TSsyReferenceChannelState
+        {
+        ESsyReferenceChannelIdle,      // Channel created, not opened
+        ESsyReferenceChannelOpening,   // Processing channel opening
+        ESsyReferenceChannelOpen,      // Channel is open
+        ESsyReferenceChannelReceiving, // Channel is receiving data
+        ESsyReferenceChannelClosing    // Processing channel closing. After this state is idle
+        };
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @param[in] aSsyControl Reference to SSY control instance.
+     * @param[in] aChannelInfo Information of this channel
+     * @return Pointer to created CSsyReferenceControl object
+     */
+    static CSsyReferenceChannel* NewL( CSsyReferenceControl& aSsyControl, TSensrvChannelInfo aChannelInfo );
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferenceChannel();
+
+    /**
+     * Request for SSY to open a sensor channel asynchronously. 
+     * Response to the request is delivered through MSsyCallback::ChannelOpened().
+     * Initilizes SSY (and the sensor) to be ready for other control commands via
+     * data and property providers. Multiple OpenChannel()-requests can be
+     * active for different channels at the same time.
+     *
+     * @return Symbian error code
+     */
+    TInt OpenChannel();
+
+    /**
+     * Request to close a sensor channel asynchronously. 
+     * Response to the request is delivered through MSsyCallback::ChannelClosed().
+     * Multiple CloseChannel()-requests can be active for different channels 
+     * at the same time.
+     *
+     * @return Symbian error code
+     */  
+    TInt CloseChannel();
+
+    /**
+     * Returns ID of this channel
+     */
+    TInt ChannelId();
+
+    /**
+     * Handles response directed to this channel
+     *
+     * @param[in] aMessage Contains information of the response
+     */
+    void ProcessResponse( TSsyReferenceMsg* aMessage );
+
+    /**
+     * Updates the state of this channel
+     * 
+     * @param[in] aNewState State to update this channel
+     */
+    void UpdateState( const TSsyReferenceChannelState aNewState );
+
+    /**
+     * Reference to SsyControl
+     */
+    CSsyReferenceControl& SsyControl() const;
+
+    /**
+     * Reference to command handler
+     */
+    CSsyReferenceCmdHandler& CommandHandler() const;
+
+    /**
+     * Search property of given property id from the channel properties and 
+     * returns reference to that. Leaves with KErrNotFound if property is not found
+     *
+     * @param[in] aPropertyId Property ID to locate
+     * @param[in] aItemIndex Item index if this search conserns specific property
+     * @param[in] aArrayIndex Indicates array index of property
+     */
+    TSensrvProperty& FindPropertyL( const TSensrvPropertyId aPropertyId,
+                                    TInt aItemIndex = KErrNotFound,
+                                    TInt aArrayIndex = ESensrvSingleProperty );
+
+    /**
+     * Search property of given property id from the channel properties and 
+     * update property values, if not read only
+     *
+     * @param[in] aProperty Property to find and update
+     */
+    void FindAndUpdatePropertyL( const TSensrvProperty& aProperty );
+    
+
+    /**
+     * Copies properties to param PropertyList
+     *
+     * @param[in, out] aPropertyList List where to copy properties
+     */
+    void GetProperties( RSensrvPropertyList& aPropertyList );
+
+private:
+
+    /**
+     * C++ constructor.
+     *
+     * @param[in] aSsyControl Reference to SSY Control instance.
+     * @param[in] aChannelInfo Information of this channel
+     */
+    CSsyReferenceChannel( CSsyReferenceControl& aSsyControl, TSensrvChannelInfo aChannelInfo );
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Handles response for OpenChannel and completes transaction by calling 
+     * MSsyCallback::ChannelOpened
+     *
+     * @param[in] aError Error code indicating the channel opening status
+     */
+    void HandleOpenChannelRespL( const TInt aError );
+
+    /**
+     * Handles response for CloseChannel and completes transaction by calling 
+     * MSsyCallback::ChannelClosed
+     */
+    void HandleCloseChannelResp();
+
+    /**
+     * Handles response for StartChannelData. Loops all channel data items and sends 
+     * each item to ChannelDataProvider
+     */
+    void HandleDataReceivedResp();
+
+private: // data
+
+    /**
+     * Reference to SSY Control to send responses to Sensor Server
+     */
+    CSsyReferenceControl& iSsyControl;
+
+    /**
+     * Pointer to CSsyReferenceChannelDataProvider owned by this channel
+     */
+    CSsyReferenceChannelDataProvider* iChannelDataProvider;
+
+    /**
+     * Pointer to CSsyReferencePropertyProvider owned by this channel
+     */
+    CSsyReferencePropertyProvider* iChannelPropertyProvider;
+
+    /**
+     * Pointer to command handler
+     */
+    CSsyReferenceCmdHandler* iCmdHandler;
+
+    /**
+     * Information of this channel
+     */
+    TSensrvChannelInfo iChannelInfo;
+
+    /**
+     * State of this channel. See CSsyReferenceChannel::TSsyReferenceChannelState
+     */
+    TInt iState;
+
+    /**
+     * Property list of this channel
+     */
+    RSensrvPropertyList iProperties;
+    };
+
+#endif // SSYREFERENCECHANNEL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencechanneldataprovider.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,269 @@
+// ssyreferencechanneldataprovider.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include "ssyreferencechanneldataprovider.h"
+#include "ssyreferencetrace.h"
+#include "ssyreferencechannel.h"
+#include "ssyreferencecontrol.h"
+#include "ssyreferencecmdhandler.h"
+#include <sensors/spi/ssycallback.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannelDataProvider::CSsyReferenceChannelDataProvider( CSsyReferenceChannel& aChannel ) :
+    iChannel( aChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::CSsyReferenceChannelDataProvider()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::CSsyReferenceChannelDataProvider() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ConstructL()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ConstructL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannelDataProvider* CSsyReferenceChannelDataProvider::NewL( CSsyReferenceChannel& aChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::NewL()" ) ) );
+    CSsyReferenceChannelDataProvider* self = new ( ELeave ) CSsyReferenceChannelDataProvider( aChannel );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannelDataProvider::~CSsyReferenceChannelDataProvider()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::~CSsyReferenceChannelDataProvider()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::~CSsyReferenceChannelDataProvider() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::StartChannelDataL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::StartChannelDataL( 
+    const TSensrvChannelId aChannelId, 
+    TUint8* aBuffer, 
+    TInt aCount )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::StartChannelDataL()" ) ) );
+
+    if ( iChannel.ChannelId() != aChannelId )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    // Store buffer pointer
+    iDataBuffer = aBuffer;
+    iMaxCount = aCount;
+    iDataCount = 0;
+
+    // Udpate channel state
+    iChannel.UpdateState( CSsyReferenceChannel::ESsyReferenceChannelReceiving );
+
+    // Start receiving
+    iChannel.CommandHandler().ProcessCommand( TSsyReferenceMsg( aChannelId, ESsyReferenceStartChannelData ) );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::StartChannelDataL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::StopChannelDataL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::StopChannelDataL( const TSensrvChannelId aChannelId )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::StopChannelDataL()" ) ) );
+
+    // Leave if wrong channel
+    if ( iChannel.ChannelId() != aChannelId )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    // Udpate channel state
+    iChannel.UpdateState( CSsyReferenceChannel::ESsyReferenceChannelOpen );
+
+    // Stop receiving
+    iChannel.CommandHandler().ProcessCommand( TSsyReferenceMsg( aChannelId, ESsyReferenceStopChannelData ) );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::StopChannelDataL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::ForceBufferFilledL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::ForceBufferFilledL( const TSensrvChannelId aChannelId )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ForceBufferFilledL()" ) ) );
+
+    // Leave if wrong channel
+    if ( iChannel.ChannelId() != aChannelId )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    // Send current buffer. Channel keeps receiveing
+    SendBufferFilled();
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ForceBufferFilledL() - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CSensrvTestCases::GetChannelDataProviderInterfaceL
+// -----------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::GetChannelDataProviderInterfaceL( TUid /*aInterfaceUid*/, 
+	                                        TAny*& aInterface )
+    {
+    aInterface = NULL;
+    }
+    
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::ChannelDataReceived
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::ChannelDataReceivedL( TSsyReferenceMsg* aMessage )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ChannelDataReceived()" ) ) );
+    
+    // Get base class from message
+    TSsyRefChannelDataBase* dataItemBase = aMessage->DataItem();
+
+    if ( !dataItemBase )
+        {
+        User::Leave( KErrArgument );
+        }
+
+    // get size of the object
+    TInt size( dataItemBase->Size() );
+
+    // First, resolve data item type
+    switch ( dataItemBase->ChannelDataType() )
+        {
+        case TSsyRefChannelDataBase::ESsyRefChannelTypeTapping:
+            {
+            // Cast data item base to tapping data item
+            TSsyRefChannelDataTapping* tappingData = static_cast<TSsyRefChannelDataTapping*>( dataItemBase );
+            TSensrvTappingData senSrvTapping;
+            senSrvTapping.iTimeStamp = tappingData->Timestamp();
+            senSrvTapping.iDirection = tappingData->Direction();
+
+            // Add mapped data item into buffer
+            AddDataToBuffer( reinterpret_cast<TUint8*>( &senSrvTapping ), size );
+            break;
+            }
+        case TSsyRefChannelDataBase::ESsyRefChannelTypeAxis:
+            {
+            // Cast data item base to Axis data item
+            TSsyRefChannelDataAxis* axisData = static_cast<TSsyRefChannelDataAxis*>( dataItemBase );
+            TSensrvAccelerometerAxisData senSrvAxis;
+            senSrvAxis.iTimeStamp = axisData->Timestamp();
+            senSrvAxis.iAxisX = axisData->XAxis();
+            senSrvAxis.iAxisY = axisData->YAxis();
+            senSrvAxis.iAxisZ = axisData->ZAxis();
+            
+            // Add data to buffer
+            AddDataToBuffer( reinterpret_cast<TUint8*>( &senSrvAxis ), size );
+            break;
+            }
+        case TSsyRefChannelDataBase::ESsyRefChannelTypeProximity:
+            {
+            // Cast data item base to tapping data item
+            TSsyRefChannelDataProximity* proximityData = static_cast<TSsyRefChannelDataProximity*>( dataItemBase );
+            TSensrvProximityData senSrvProximity;
+            senSrvProximity.iProximityState = ( TSensrvProximityData::TProximityState ) proximityData->ProximityState();
+
+            // Add mapped data item into buffer
+            AddDataToBuffer( reinterpret_cast<TUint8*>( &senSrvProximity ), size );
+            break;
+            }
+        default:
+            {
+            // Unknown data item -> Leave
+            User::Leave( KErrUnknown );
+            }
+        }
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::ChannelDataReceived() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::AddDataToBuffer
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::AddDataToBuffer( TUint8* aData, const TInt aSize )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::AddDataToBuffer()" ) ) );
+    // Write data to buffer. If buffer is full, send notification to SensorServer
+
+    // Write data bytes one by one to buffer pointer. The actual buffer is in Sensor Server    
+    for ( TInt i = 0; i < aSize; i++ )
+        {
+        *iDataBuffer++ = *aData++;
+        }
+    
+    // Increase number of items count
+    iDataCount++;
+
+    // Check is maximum data count received
+    if ( iDataCount == iMaxCount )
+        {
+        // Send BufferFilled notification to Sensor server
+        SendBufferFilled();
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::AddDataToBuffer() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceChannelDataProvider::SendBufferFilled
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceChannelDataProvider::SendBufferFilled()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::SendBufferFilled()" ) ) );
+    // Send BufferFilled notification to Sensor server
+    iChannel.SsyControl().SsyCallback().BufferFilled( iChannel.ChannelId(), iDataCount, iDataBuffer, iMaxCount );
+    iDataCount = 0;
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceChannelDataProvider::SendBufferFilled() - return" ) ) );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencechanneldataprovider.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,149 @@
+// ssyreferencechanneldataprovider.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SSYREFERENCECHANNELDATAPROVIDER_H
+#define SSYREFERENCECHANNELDATAPROVIDER_H
+
+#include <sensors/spi/ssychanneldataprovider.h>
+
+class CSsyReferenceChannel;
+class TSsyReferenceMsg;
+
+/**
+ *  Channel data provider implementation.
+ */
+class CSsyReferenceChannelDataProvider : public CBase, public MSsyChannelDataProvider
+    {
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @param[in] aChannel Reference to channel this provider belongs to
+     * @return Pointer to created CSsyReferenceControl object
+     */
+    static CSsyReferenceChannelDataProvider* NewL( CSsyReferenceChannel& aChannel );
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferenceChannelDataProvider();
+
+// from base class MSsyChannelDataProvider
+
+    /**
+     * From MSsyChannelDataProvider
+     * Starts asynchronous data listening. Multiple OpenChannel()-requests
+     * can be active for different channels at the same time.
+     *
+     * @param[in] aBuffer Pointer to a data buffer 
+     * @param[in] aCount Indicates data buffer size as a count of the data objects.
+     */
+    void StartChannelDataL( const TSensrvChannelId aChannelId, TUint8* aBuffer, TInt aCount );
+
+    /**
+     * From MSsyChannelDataProvider
+     * Stops asynchronous data listening. The data buffer is not valid after call of 
+     * this function.
+     */
+    void StopChannelDataL( const TSensrvChannelId aChannelId );
+
+    /**
+     * From MSsyChannelDataProvider
+     * Forces SSY to call BufferFilled() regardless of how many data items have been
+     * written to buffer. Even if no data items have yet been written, BufferFilled()
+     * must be called.
+     */
+    void ForceBufferFilledL( const TSensrvChannelId aChannelId );
+
+    /** 
+    * Returns a pointer to a specified interface - to allow future extension
+    * of this class without breaking binary compatibility
+    *
+    * @param aInterfaceUid Identifier of the interface to be retrieved
+    * @param aInterface A reference to a pointer that retrieves the specified interface.
+    */
+    void GetChannelDataProviderInterfaceL( TUid aInterfaceUid, TAny*& aInterface );
+
+    /**
+     * Channel data item received
+     *
+     * @param[in] aMessage Contains channel item
+     */
+    void ChannelDataReceivedL( TSsyReferenceMsg* aMessage );
+
+private:
+
+    /**
+     * C++ constructor.
+     * @param[in] aChannel Reference to channel this provider belongs to
+     */
+    CSsyReferenceChannelDataProvider( CSsyReferenceChannel& aChannel );
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Adds data into buffer. 
+     *
+     *@param[in] aData Data to add to buffer
+     *@param[in] aSize Size of data
+     */
+    void AddDataToBuffer( TUint8* aData, const TInt aSize );
+
+    /**
+     * Sends BufferFilled notification to MSsyCallback
+     */
+    void SendBufferFilled();
+
+private: // data
+
+    /**
+     * Reference to channel for which this provider belongs to
+     */
+    CSsyReferenceChannel& iChannel;
+
+    /**
+     * Pointer to data buffer in Sensor Server side
+     */
+    TUint8* iDataBuffer;
+
+    /**
+     * Maximum requested data items
+     */
+    TInt iMaxCount;
+
+    /**
+     * Number of items in buffer
+     */
+    TInt iDataCount;
+    };
+
+#endif // SSYREFERENCECHANNELDATAPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencecmdhandler.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,367 @@
+// ssyreferencecmdhandler.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include <e32property.h>
+#include "ssyreferencecmdhandler.h"
+#include "ssyreferencecontrol.h"
+#include "ssyreferencechannel.h"
+#include "ssyreferencetrace.h"
+
+// ======== CONSTANTS ========
+const TInt KSsyRefShortDelay = 100; 
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceCmdHandler::CSsyReferenceCmdHandler( CSsyReferenceChannel& aSsyChannel ) :
+    CActive( EPriorityNormal ),
+    iSsyChannel( aSsyChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::CSsyReferenceCmdHandler()" ) ) );
+    CActiveScheduler::Add( this );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::CSsyReferenceCmdHandler() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceCmdHandler::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ConstructL()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ConstructL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceCmdHandler* CSsyReferenceCmdHandler::NewL( CSsyReferenceChannel& aSsyChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::NewL()" ) ) );
+    CSsyReferenceCmdHandler* self = new ( ELeave ) CSsyReferenceCmdHandler( aSsyChannel );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceCmdHandler::~CSsyReferenceCmdHandler()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::~CSsyReferenceCmdHandler()" ) ) );
+
+    if ( iMessage )
+        {
+        // Send ProcessResponse
+        iMessage->SetError( KErrCancel );
+        iSsyChannel.ProcessResponse( iMessage );
+        delete iMessage;
+        iMessage = NULL;
+        }
+
+    if ( iTimer )
+        {
+        iTimer->Cancel();
+        delete iTimer;
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::~CSsyReferenceCmdHandler() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::ProcessCommand
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceCmdHandler::ProcessCommand( TSsyReferenceMsg aMessage )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ProcessCommand()" ) ) );
+    TInt err( KErrAlreadyExists );
+    
+    // Special case, when channel is reciving, iMessage is not deleted after ProcessCommand
+    if ( aMessage.Function() == ESsyReferenceStopChannelData )
+        {
+        // Stop 'receiving'. No need to handle this asynchronously
+        if ( iTimer )
+            {
+            iTimer->Cancel();
+            delete iTimer;
+            iTimer = NULL;
+            }
+        
+        iDataItemArray.Reset();
+        iDataItemPtr = 0;
+        err = KErrNone;
+        // No need to send ProcessResponse either
+        delete iMessage;
+        iMessage = NULL;
+        }
+    else if ( !iMessage )
+        {
+        iMessage = new TSsyReferenceMsg( aMessage );
+        if(iMessage)
+            {
+            switch( aMessage.Function() )
+                {
+                case ESsyReferenceStartChannelData:
+                    {
+                    // Get channel data items and start 'receiving'
+                    IssueRequest();
+                    err = KErrNone;
+                    break;
+                    }
+                case ESsyReferenceOpenChannel:
+                    {
+                    // Open channel specific handling here
+                    IssueRequest();
+                    err = KErrNone;
+                    break;
+                    }
+                case ESsyReferenceCloseChannel:
+                    {
+                    // Close channel specific handling here
+                    IssueRequest();
+                    err = KErrNone;
+                    break;  
+                    }
+                default:
+                    {
+                    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ProcessCommand() - Unknown function" ) ) );
+                    err = KErrNotFound;
+                    }
+                }
+            }
+            else
+            {
+            err = KErrNoMemory;
+            }
+        }
+    else
+        {
+        err = KErrUnknown;
+        }
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ProcessCommand() - return" ) ) );
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::IssueRequest
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceCmdHandler::IssueRequest( TInt aError )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::IssueRequest()" ) ) );
+    // Provides synchronous function calls to be handled as asynchronous
+    if ( !IsActive() )
+        {
+        TRequestStatus *s = &iStatus;
+	    User::RequestComplete( s, aError );
+	    SetActive();
+        }
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::IssueRequest() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::SendResponse
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceCmdHandler::SendResponse( TInt aError )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::SendResponse()" ) ) );
+    // Send response to channel
+    if ( iMessage )
+        {
+        iMessage->SetError( aError );
+        iSsyChannel.ProcessResponse( iMessage );
+        delete iMessage;
+        iMessage = NULL;
+        }
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::SendResponse() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::RunL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceCmdHandler::RunL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::RunL() - %i" ), iStatus.Int() ) );
+    
+    TInt err( iStatus.Int() );
+
+    if ( iMessage )
+        {
+        switch( iMessage->Function() )
+            {
+            case ESsyReferenceStartChannelData:
+                {
+                TInt startInterval( 0 );
+                
+                // Get all Channel data information from config file
+                iSsyChannel.SsyControl().SsyConfig().
+                    GetChannelDataInformationL( iMessage->ChannelId(), iDataItemArray, startInterval );
+
+                // Check that channel data items were found
+                if ( iDataItemArray.Count() )
+                    {
+                    // If interval is zero, set small interval
+                    if ( startInterval == 0 )
+                        {
+                        startInterval = KSsyRefShortDelay;
+                        }
+
+                    // wait that interval
+                    if ( iTimer )
+                        {
+                        iTimer->Cancel();
+                        delete iTimer;
+                        iTimer = NULL;
+                        }
+
+                    // Reset pointer
+                    iDataItemPtr = 0;
+
+                    // Start timer and continue processing in callback function
+                    iTimer = CPeriodic::NewL( EPriorityNormal );
+                    iTimer->Start( startInterval * 1000, 0, TCallBack( DataItemCallback, this ) );
+                    }
+                break;
+                }
+            case ESsyReferenceOpenChannel:
+                {
+                // Open channel response specific handling here
+                iMessage->SetFunction( ESsyReferenceOpenChannelResp );
+                SendResponse();
+                break;
+                }
+            case ESsyReferenceCloseChannel:
+                {
+                // Close channel response specific handling here
+                iMessage->SetFunction( ESsyReferenceCloseChannelResp );
+                SendResponse();
+                break;  
+                }
+            default:
+                {
+                COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::ProcessCommand() - Unknown function" ) ) );
+                err = KErrNotFound;
+                }
+            }
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::RunL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceCmdHandler::DoCancel()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::DoCancel()" ) ) );
+
+    // Handle cancel for this channel. Cancel any ongoing requests
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::DoCancel() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::RunError
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceCmdHandler::RunError( TInt /*aError*/ )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::RunError()" ) ) );
+
+    // Handle possible errors here and return KErrNone to prevent SSY from panic
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::RunError() - return" ) ) );
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::DataItemCallback
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceCmdHandler::DataItemCallback( TAny* aThis )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::DataItemCallback()" ) ) );
+    return static_cast<CSsyReferenceCmdHandler*>( aThis )->GenerateChannelDataItem();
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceCmdHandler::GenerateChannelDataItem
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceCmdHandler::GenerateChannelDataItem()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::GenerateChannelDataItem()" ) ) );
+
+    // Get next item from list and set pointer to next item
+    TSsyRefChannelDataBase dataItem = iDataItemArray[iDataItemPtr++];
+
+    // Get next item interval from data item
+    TInt nextInterval( dataItem.Interval() );
+
+    // Set timestamp to data item
+    TTime time;
+    time.HomeTime();
+    dataItem.SetTimestamp( time );
+
+    // If interval is zero, set small interval
+    if ( nextInterval == 0 )
+        {
+        nextInterval = KSsyRefShortDelay;
+        }
+
+    // Add data item to message
+    iMessage->SetDataItem( &dataItem );
+
+    // If in last data item, set pointer back to first item
+    if ( iDataItemArray.Count() == iDataItemPtr )
+        {
+        iDataItemPtr = 0;
+        }
+
+    // Send response and start new timer
+    iMessage->SetFunction( ESsyReferenceDataItemReceived );
+    iSsyChannel.ProcessResponse( iMessage );
+
+    if ( iTimer )
+        {
+        delete iTimer;
+        iTimer = NULL;
+        }
+
+    TRAP_IGNORE( iTimer = CPeriodic::NewL( EPriorityNormal );
+                 iTimer->Start( nextInterval * 1000, 0, TCallBack( DataItemCallback, this ) ); )
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceCmdHandler::GenerateChannelDataItem() - return" ) ) );
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencecmdhandler.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,147 @@
+// ssyreferencecmdhandler.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SSYREFERENCECMDHANDLER_H
+#define SSYREFERENCECMDHANDLER_H
+
+#include <e32base.h>
+#include "ssyreferenceconfig.h"
+
+// FORWARD DECLARATIONS
+class CSsyReferenceChannel;
+
+/**
+ *  Command handler class for handling commands of one channel. Each opened 
+ *  channel has its own instance of this class
+ */
+class CSsyReferenceCmdHandler : public CActive
+    {
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @param[in] aSsyChannel Reference to SSY Channel instance.
+     * @return Pointer to created CSsyReferenceCmdHandler object
+     */
+    static CSsyReferenceCmdHandler* NewL( CSsyReferenceChannel& aSsyChannel );
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferenceCmdHandler();
+
+// from base class CSsyControl
+
+    /**
+     * Processes command specified in param aMessage. 
+     *
+     * @param[in] aMessage Contains command information to process
+     * @return Symbian error code
+     */
+    TInt ProcessCommand( TSsyReferenceMsg aMessage );
+
+    /**
+     * From CActive
+     */
+    void RunL();
+
+    /**
+     * From CActive
+     */
+    void DoCancel();
+
+    /**
+     * From CActive
+     */
+    TInt RunError( TInt aError );
+
+    /**
+     * Callback function for DataItem generation
+     */
+    static TInt DataItemCallback( TAny* aThis );
+    
+    /**
+     * Handles data item generation. Called from DataItemCallback
+     */
+    TInt GenerateChannelDataItem();
+
+private:
+
+    /**
+     * C++ constructor.
+     *
+     * @param[in] aSsyChannel Reference to SSY Channel instance.
+     */
+    CSsyReferenceCmdHandler( CSsyReferenceChannel& aSsyChannel );
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Makes synchronous calls asynchronous
+     */
+    void IssueRequest( TInt aError = KErrNone );
+
+    /**
+     * Sends response to channel
+     */
+    void SendResponse( TInt aError = KErrNone );
+
+private: // data
+
+    /**
+     * Reference to SSY Conrtol to send responses for commands
+     */
+    CSsyReferenceChannel& iSsyChannel;
+
+    /**
+     * Pointer to currently processing message
+     */
+    TSsyReferenceMsg* iMessage;
+
+    /**
+     * Data item array
+     */
+    TSsyRefDataItemArray iDataItemArray;
+
+    /**
+     * Pointer to next item to generate in iDataItemArray
+     */
+    TInt iDataItemPtr;
+
+    /**
+     * Periodic timer for generating channel data
+     */
+    CPeriodic* iTimer;
+    };
+
+#endif // SSYREFERENCECMDHANDLER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferenceconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,896 @@
+// ssyreferenceconfig.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include <sensors/sensrvtypes.h>
+#include <f32file.h>
+#include <gmxmldocument.h>
+#include <gmxmlelement.h>
+#include <sensors/channels/ssyreferenceaccelerometer.h>
+#include <sensors/channels/ssyreferencemagnetometer.h>
+#include <sensors/channels/ssyreferenceorientation.h>
+#include <sensors/channels/ssyreferenceproximity.h>
+
+#include "ssyreferencecontrol.h"
+#include "ssyreferenceconfig.h"
+#include "ssyreferencetrace.h"
+
+
+// ======== CONSTANTS =======
+_LIT( KSsyReferenceCfgFileOrig, "z:\\refssy\\ssyreferenceconfig.xml" );
+_LIT( KSsyReferenceCfgFileExt, "c:\\refssy\\ssyreferenceconfig.xml" );
+
+// Config file definitions
+
+// Maximum attribute length
+const TInt KSsyRefMaxAttribLength = 20;
+
+// TAG DEFINITIONS
+_LIT( KSsyRefRootTag, "SsyReferenceConfig" );                       // Ssy general information tag
+_LIT( KSsyRefGeneralInfoTag, "SsyGeneralInformation" );             // Ssy general information tag
+_LIT( KSsyRefChannelInfoGroupTag, "ChannelInformationGroup" );      // Channel information group tag
+_LIT( KSsyRefChannelItemTag, "ChannelItem" );                       // Channel item tag
+_LIT( KSsyRefChannelDataTag, "ChannelData" );                       // Channel data tag
+_LIT( KSsyRefChannelDataItemTag, "ChannelDataItem" );               // Channel data item tag
+
+_LIT( KSsyRefProperties, "Properties" );                            // Properties tag
+_LIT( KSsyRefPropertyItem, "PropertyItem" );                        // PropertyItem tag
+
+// Data item definitions
+_LIT( KSsyRefAxisDataItemTag, "SsyRefChannelDataAxis" );            // SsyRefChannelDataAxis data item tag
+_LIT( KSsyRefXAxis, "XAxis" );                                      // XAxis from SsyRefChannelDataAxis
+_LIT( KSsyRefYAxis, "YAxis" );                                      // YAxis from SsyRefChannelDataAxis
+_LIT( KSsyRefZAxis, "ZAxis" );                                      // ZAxis from SsyRefChannelDataAxis
+
+_LIT( KSsyRefTappingDataItemTag, "SsyRefChannelDataTapping" );      // SsyRefChannelDataTapping data item tag
+_LIT( KSsyRefDirection, "Direction" );                              // Direction from SsyRefChannelDataTapping
+
+_LIT( KSsyRefProximityDataItemTag, "SsyRefChannelDataProximity" );  // SsyRefChannelDataProximity data item tag
+_LIT( KSsyRefProximityState, "ProximityState" );                    // ProximityStatus from SsyRefChannelDataProximity
+
+// ATTRIBUTE DEFINITIONS
+_LIT( KSsyRefChannelCount, "ChannelCount" );    // Channel count from ChannelInformationGroup
+_LIT( KSsyRefChannelId, "ChannelId" );          // Channel ID from ChannelItem
+_LIT( KSsyRefContextType, "ContextType" );      // Context type from ChannelItem
+_LIT( KSsyRefQuantity, "Quantity" );            // Quantity from ChannelItem
+_LIT( KSsyRefChannelType, "ChannelType" );      // ChannelType from ChannelItem
+_LIT( KSsyRefLocation, "Location" );            // Location from ChannelItem
+_LIT( KSsyRefVendorId, "Vendor" );              // Vendor from ChannelItem
+
+
+// Channel data item specific attribute definitions
+_LIT( KSsyRefStartInterval, "StartIntervalMs" );              // StartInterval from ChannelData
+_LIT( KSsyRefDataItemCount, "count" );                        // count from ChannelDataItem
+_LIT( KSsyRefDataTypeID, "DataTypeId" );                      // DataTypeId from ChannelDataItem
+_LIT( KSsyRefInterval, "IntervalMs" );                        // IntervalMs from ChannelDataItem
+
+// Property spesific attributes
+_LIT( KSsyRefPropertyId, "PropertyId" );              // PropertyId from PropertyItem
+_LIT( KSsyRefArrayIndex, "ArrayIndex" );              // ArrayIndex from PropertyItem
+_LIT( KSsyRefItemIndex, "ItemIndex" );                // ItemIndex from PropertyItem
+_LIT( KSsyRefPropertyValue, "PropertyValue" );        // PropertyValue from PorpertyItem
+_LIT( KSsyRefPropertyType, "PropertyType" );          // PropertyType from PropertyItem
+_LIT( KSsyRefMaxValue, "MaxValue" );                  // MaxValue from PropertyItem
+_LIT( KSsyRefMinValue, "MinValue" );                  // MinValue from PorpertyItem
+_LIT( KSsyRefReadOnly, "ReadOnly" );                  // ReadOnly from PropertyItem
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceConfig::CSsyReferenceConfig() :
+    CActive( EPriorityMuchLess )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::CSsyReferenceConfig()" ) ) );
+    CActiveScheduler::Add( this );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::CSsyReferenceConfig() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ConstructL()" ) ) );
+    // Create config file parser
+    iConfigParser = CMDXMLParser::NewL( this );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ConstructL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceConfig* CSsyReferenceConfig::NewL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::NewL()" ) ) );
+    CSsyReferenceConfig* self = new ( ELeave ) CSsyReferenceConfig();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceConfig::~CSsyReferenceConfig()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::~CSsyReferenceConfig()" ) ) );
+    
+    if ( iConfigParser )
+        {
+        delete iConfigParser;
+        iConfigParser = NULL;
+        }
+
+    if ( iGenralInfoElement )
+        {
+        delete iGenralInfoElement;
+        iGenralInfoElement = NULL;
+        }
+
+    if ( iChannelGroupElement )
+        {
+        delete iChannelGroupElement;
+        iChannelGroupElement = NULL;
+        }
+
+    if ( iSsyReferenceConfig )
+        {
+        delete iSsyReferenceConfig;
+        iSsyReferenceConfig = NULL;
+        }
+
+    if ( iConfigFile )
+        {
+        delete iConfigFile;
+        iConfigFile = NULL;
+        }
+
+    iChannelPairArray.Reset();
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::~CSsyReferenceConfig() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::InitConfig
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::InitConfigL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::InitConfig()" ) ) );
+    
+    // Open config file
+    RFs fileSession;
+    User::LeaveIfError( fileSession.Connect() );
+
+    // Locate extrenal file... 
+    RFile file;
+    TInt err( file.Open( fileSession, KSsyReferenceCfgFileExt, EFileRead ) );
+    file.Close();
+
+    // Check is external file found
+    if ( KErrNone == err )
+        {
+        // Use SSY with external configuration
+        User::LeaveIfError( iConfigParser->ParseFile( fileSession, KSsyReferenceCfgFileExt ) );
+        }
+    else
+        {
+        // Use SSY with original configuration
+
+        // Start parsing file and wait notification to ParseFileCompleteL
+        // XML Parser takes ownership of the RFs and closes it when file is parsed
+        User::LeaveIfError( iConfigParser->ParseFile( fileSession, KSsyReferenceCfgFileOrig ) );
+        }
+
+    iConfigFileParsed = EFalse;
+
+    // This active object has very low priority since XML parser uses Active objects also, 
+    // so it is mandatory to let XML parser to complete sooner than this active object
+    IssueRequest();
+    iSchedulerWait.Start(); // Blocks until file is parsed
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::InitConfig() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::IssueRequest
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::IssueRequest( TInt aError )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::IssueRequest()" ) ) );
+    // Provides synchronous function calls to be handled as asynchronous
+    if ( !IsActive() )
+        {
+        SetActive();
+        TRequestStatus *s = &iStatus;
+	    User::RequestComplete( s, aError );
+        }
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::IssueRequest() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::RunL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::RunL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::RunL() - %i" ), iStatus.Int() ) );
+
+    if ( iConfigFileParsed )
+        {
+        // Stop blocking
+        iSchedulerWait.AsyncStop();
+        }
+    else
+        {
+        // Continue RunL loop
+        IssueRequest();
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::RunL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::DoCancel()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::DoCancel()" ) ) );
+
+    // Stop blocking
+    iSchedulerWait.AsyncStop();
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::DoCancel() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::RunError
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceConfig::RunError( TInt /*aError*/ )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::RunError()" ) ) );
+
+    // Handle possible errors here and return KErrNone to prevent SSY from panic
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::RunError() - return" ) ) );
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::ParseFileCompleteL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::ParseFileCompleteL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ParseFileCompleteL()" ) ) );
+    // First get document
+    iConfigFile = iConfigParser->DetachXMLDoc();
+    // Then get document element
+    CMDXMLElement*  documentElement = iConfigFile->DocumentElement();
+    // Get root element, 'SsyReferenceConfig'
+    iSsyReferenceConfig = documentElement->FirstChildOfType( KSsyRefRootTag );
+    // Get gereral information element 
+    iGenralInfoElement = iSsyReferenceConfig->FirstChildOfType( KSsyRefGeneralInfoTag );
+    // Get channel information group element
+    iChannelGroupElement = iSsyReferenceConfig->FirstChildOfType( KSsyRefChannelInfoGroupTag );
+    // Get channel count
+    iChannelCount = GetAttributeIntValue( *iChannelGroupElement, KSsyRefChannelCount );
+
+    // No need to delete documentElement, it is owned by iConfigFile.
+    documentElement = NULL;
+    iConfigFileParsed = ETrue;
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ParseFileCompleteL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetAttributeIntValue
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceConfig::GetAttributeIntValue( CMDXMLElement& aElement, const TDesC& aAttrib )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeIntValue()" ) ) );
+    COMPONENT_TRACE( ( _L( "  Element: %s", aElement.NodeName() ) ) );
+    COMPONENT_TRACE( ( _L( "  Attribute: %s", aAttrib ) ) );
+
+    TInt intValue( 0 );
+
+    // Check availability
+    if ( aElement.IsAttributeSpecified( aAttrib ) )
+        {
+        // Buffer to where to read value
+        TBufC<KSsyRefMaxAttribLength> buffer( KNullDesC );
+        TPtrC ptr( buffer );
+
+        // Read attribute value
+        aElement.GetAttribute( aAttrib, ptr );
+
+        // Cast literal value into TInt
+        TLex lexValue( ptr );
+        lexValue.Val( intValue );
+        }
+
+    COMPONENT_TRACE( ( _L( "  IntValue: %i", intValue ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeIntValue() - return" ) ) );
+    return intValue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetAttributeStrValue
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GetAttributeStrValue( CMDXMLElement& aElement, const TDesC& aAttrib, TDes8& aTarget )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeStrValue()" ) ) );
+    COMPONENT_TRACE( ( _L( "  Element: %s", aElement.NodeName() ) ) );
+    COMPONENT_TRACE( ( _L( "  Attribute: %s", aAttrib ) ) );
+
+    // Check availability
+    if ( aElement.IsAttributeSpecified( aAttrib ) )
+        {
+        // Buffer to where to read value
+        TBufC<KSsyRefMaxAttribLength> buffer( KNullDesC );
+        TPtrC ptr( buffer );
+
+        // Read attribute value
+        aElement.GetAttribute( aAttrib, ptr );
+
+        // Copy string from 16-bit descriptor to 8-bit descriptor
+        aTarget.Copy( ptr );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeStrValue() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetAttributeHexValue
+// ---------------------------------------------------------------------------
+//
+TUint CSsyReferenceConfig::GetAttributeHexValue( CMDXMLElement& aElement, const TDesC& aAttrib )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeHexValue()" ) ) );
+    COMPONENT_TRACE( ( _L( "  Element: %s", aElement.NodeName() ) ) );
+    COMPONENT_TRACE( ( _L( "  Attribute: %s", aAttrib ) ) );
+
+    TUint32 hexValue( 0 );
+
+    // Check availability
+    if ( aElement.IsAttributeSpecified( aAttrib ) )
+        {
+        // Buffer to where to read value
+        TBufC<KSsyRefMaxAttribLength> buffer( KNullDesC );
+        TPtrC ptr( buffer );
+
+        // Read attribute value
+        aElement.GetAttribute( aAttrib, ptr );
+
+        // Get bounded value and cast it into TUint32 (hex)
+        TRadix radix( EHex );
+        TUint limit( 0xFFFFFFFF );
+
+        // Append string into Lex and skip first two characters, 0x
+        TLex lexValue( ptr );
+        lexValue.Inc( 2 );
+
+        // Read value
+        lexValue.BoundedVal( hexValue, radix, limit );
+        }
+
+    COMPONENT_TRACE( ( _L( "  HexValue: %x", hexValue ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeHexValue() - return" ) ) );
+    return hexValue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetAttributeRealValue
+// ---------------------------------------------------------------------------
+//
+TReal CSsyReferenceConfig::GetAttributeRealValue( CMDXMLElement& aElement, const TDesC& aAttrib )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeRealValue()" ) ) );
+    COMPONENT_TRACE( ( _L( "  Element: %s", aElement.NodeName() ) ) );
+    COMPONENT_TRACE( ( _L( "  Attribute: %s", aAttrib ) ) );
+
+    TReal realValue( 0 );
+
+    // Check availability
+    if ( aElement.IsAttributeSpecified( aAttrib ) )
+        {
+
+        // Buffer to where to read value
+        TBufC<KSsyRefMaxAttribLength> buffer( KNullDesC );
+        TPtrC ptr( buffer );
+
+        // Read attribute value
+        aElement.GetAttribute( aAttrib, ptr );
+
+        // Cast literal value into TReal
+        TLex lexValue( ptr );
+        TInt error = lexValue.Val( realValue );
+        if( error!=KErrNone )
+        	{
+        	realValue = error;
+        	}
+        }
+
+    COMPONENT_TRACE( ( _L( "  IntValue: %i", realValue ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetAttributeRealValue() - return" ) ) );
+    return realValue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::ChannelCount
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceConfig::ChannelCount()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ChannelCount() - %i" ), iChannelCount ) );
+    return iChannelCount;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GenerateChannels
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GenerateChannels( RSensrvChannelInfoList& aChannelList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GenerateChannels()" ) ) );
+
+    // Initialize channel pair array
+    TSsyRefChannelIdArray tempArray( iChannelCount );
+    iChannelPairArray = tempArray;
+
+    // Go through Channel group element and get all information
+    TSensrvChannelInfo channelInfo;
+    CMDXMLElement* channelElement = iChannelGroupElement->FirstChildOfType( KSsyRefChannelItemTag );
+
+    while( channelElement )
+        {
+        // check is element correct type of node
+        if ( channelElement->NodeType() == CMDXMLNode::EElementNode )
+            {
+            // read channel identifier
+            iChannelPairArray.Append( TSsyRefChannelIdPair( GetAttributeIntValue( *channelElement, KSsyRefChannelId ) ) );
+
+            // Read attributes
+            channelInfo.iContextType = ( TSensrvContextType ) GetAttributeIntValue( *channelElement, KSsyRefContextType );
+            channelInfo.iQuantity = ( TSensrvQuantity ) GetAttributeIntValue( *channelElement, KSsyRefQuantity );
+            channelInfo.iChannelType = ( TSensrvChannelTypeId ) GetAttributeHexValue( *channelElement, KSsyRefChannelType );
+            GetAttributeStrValue( *channelElement, KSsyRefLocation, channelInfo.iLocation );
+            GetAttributeStrValue( *channelElement, KSsyRefVendorId, channelInfo.iVendorId );
+            channelInfo.iChannelDataTypeId = ( TSensrvChannelDataTypeId ) GetAttributeHexValue( *channelElement, KSsyRefDataTypeID );
+            
+            // Calculate data item size based on channel type
+            switch ( channelInfo.iChannelType )
+                {
+                case KSensrvChannelTypeIdAccelerometerXYZAxisData:
+                    {
+                    channelInfo.iDataItemSize = KSsyRefAxisDataItemSize;
+                    break;
+                    }
+                case KSensrvChannelTypeIdProximityMonitor:
+                    {
+                    channelInfo.iDataItemSize = KSsyRefProximityDataItemSize;
+                    break;
+                    }
+                case KSensrvChannelTypeIdAccelerometerWakeupData:
+                case KSensrvChannelTypeIdAccelerometerDoubleTappingData:
+                    {
+                    channelInfo.iDataItemSize = KSsyRefTappingDataItemSize;
+                    break;
+                    }
+                default:
+                    {
+                    channelInfo.iDataItemSize = 0;
+                    break;
+                    }
+                }
+
+            // Append channel info to list
+            aChannelList.Append( channelInfo );
+            }
+        channelElement = static_cast<CMDXMLElement*>( channelElement->NextSibling() );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GenerateChannels() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetChannelDataInformation
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GetChannelDataInformationL( 
+    const TInt aSrvChannelId,
+    TSsyRefDataItemArray& aDataItemList, 
+    TInt& aStartInterval )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetChannelDataInformation()" ) ) );
+
+    // First, get correct config channel element corresponding to aSrvChannelId
+    CMDXMLElement* channelElement = ChannelElement( aSrvChannelId );
+
+    if ( channelElement )
+        {
+        // Channel element found, get channel data group element
+        CMDXMLElement* groupElement = channelElement->FirstChildOfType( KSsyRefChannelDataTag );
+        
+        if ( groupElement )
+            {
+            // Get start interval
+            aStartInterval = GetAttributeIntValue( *groupElement, KSsyRefStartInterval );
+
+            // First, loop channel data items to get total count
+            CMDXMLElement* dataItemElement = groupElement->FirstChildOfType( KSsyRefChannelDataItemTag );
+
+            // Take channel data item type at this point. One channel can produce only one type of
+            // channel data item
+            TUint channelType( GetAttributeHexValue( *dataItemElement, KSsyRefDataTypeID ) );
+
+            TInt channelItemCount( 0 ); // Total number of data items
+            TInt definitionCount( 0 );  // Total number of different definitions
+
+            // Go through elements and get counters
+            while ( dataItemElement )
+                {
+                definitionCount++;
+                channelItemCount = channelItemCount + GetAttributeIntValue( *dataItemElement, KSsyRefDataItemCount );
+                // This will return NULL if no next sibling found
+                dataItemElement = static_cast<CMDXMLElement*>( dataItemElement->NextSibling() );
+                }
+
+            // Now, start all over to get item information
+            dataItemElement = groupElement->FirstChildOfType( KSsyRefChannelDataItemTag );
+
+            // Create temp array now that we know the data item count
+            TSsyRefDataItemArray tempArray( channelItemCount );
+
+            for ( TInt i = 0; i < definitionCount; i++ )
+                {
+                // Check element type
+                if ( dataItemElement->NodeType() == CMDXMLNode::EElementNode )
+                    {
+                    // First we get interval and count from channel item
+                    TInt interval( GetAttributeIntValue( *dataItemElement, KSsyRefInterval ) );
+                    TInt countOfType( GetAttributeIntValue( *dataItemElement, KSsyRefDataItemCount ) );
+
+                    // Read next child values to corresponding data type class
+                    switch ( channelType )
+                        {
+                        case TSensrvAccelerometerAxisData::KDataTypeId:
+                            {
+                            CMDXMLElement* axisDataElement = dataItemElement->FirstChildOfType( KSsyRefAxisDataItemTag );
+                            TInt axisX( GetAttributeIntValue( *axisDataElement, KSsyRefXAxis ) );
+                            TInt axisY( GetAttributeIntValue( *axisDataElement, KSsyRefYAxis ) );
+                            TInt axisZ( GetAttributeIntValue( *axisDataElement, KSsyRefZAxis ) );
+
+                            // Create channel data type item
+                            TSsyRefChannelDataAxis channelData( axisX, axisY, axisZ, interval );
+                            // add items into array
+                            for ( TInt k = 0; k < countOfType; k++ )
+                                {
+                                tempArray.Append( channelData );
+                                }
+                            break;
+                            }
+                        case TSensrvTappingData::KDataTypeId:
+                            {
+                            CMDXMLElement* tappingDataElement = dataItemElement->FirstChildOfType( KSsyRefTappingDataItemTag );
+                            TInt direction( GetAttributeHexValue( *tappingDataElement, KSsyRefDirection ) );
+                            
+                            // Create channel data type item
+                            TSsyRefChannelDataTapping channelData( direction, interval );
+                            // add items into array
+                            for ( TInt k = 0; k < countOfType; k++ )
+                                {
+                                tempArray.Append( channelData );
+                                }
+                            break;
+                            }
+                        case TSensrvProximityData::KDataTypeId:
+                            {
+                            CMDXMLElement* proximityDataElement = dataItemElement->FirstChildOfType( KSsyRefProximityDataItemTag );
+                            TInt state( GetAttributeIntValue( *proximityDataElement, KSsyRefProximityState ) );
+                            
+                            // Create channel data type item
+                            TSsyRefChannelDataProximity channelData( state, interval );
+                            // add items into array
+                            for ( TInt k = 0; k < countOfType; k++ )
+                                {
+                                tempArray.Append( channelData );
+                                }
+                            break;
+                            }
+                        default:
+                            {
+                            // Other data items are not supported
+                            User::Leave( KErrGeneral );
+                            }
+                        }
+                    }
+
+                // Get next channel data item element
+                dataItemElement = static_cast<CMDXMLElement*>( dataItemElement->NextSibling() );
+                }
+
+            // Compress temp array in case there were comments
+            tempArray.Compress();
+
+            // copy information to param array
+            aDataItemList = tempArray;
+            }
+        else
+            {
+            User::Leave( KErrNotFound );
+            }
+        }
+    else
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetChannelDataInformation() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetElementPropertiesL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GetElementPropertiesL( 
+    CMDXMLElement& aElement, 
+    RSensrvPropertyList& aPropertyList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetElementPropertiesL()" ) ) );
+
+    // First we need 'Properties' element
+    CMDXMLElement* properties = aElement.FirstChildOfType( KSsyRefProperties );
+
+    if ( !properties )
+        {
+        // Wrong element... or properties are not defined
+        User::Leave( KErrNotFound );
+        }
+
+    // Get first property get started
+    CMDXMLElement* propertyItem = properties->FirstChildOfType( KSsyRefPropertyItem );
+    TInt propertyCount( 0 );
+
+    // Loop properties to get count of properties
+    while ( propertyItem )
+        {
+        propertyCount++;
+        propertyItem = static_cast<CMDXMLElement*>( propertyItem->NextSibling() ); // returns NULL if next not found
+        }
+    
+    if ( !propertyCount )
+        {
+        // Check that there are properties
+        User::Leave( KErrNotFound );
+        }
+
+    // Temporary property list now that we know the property count
+    RSensrvPropertyList tempList( propertyCount );
+
+    // Start loop again from the start and read each property
+    propertyItem = properties->FirstChildOfType( KSsyRefPropertyItem );
+    for ( TInt i = 0; i < propertyCount; i++ )
+        {
+        // Check element type
+        if ( propertyItem->NodeType() == CMDXMLNode::EElementNode )
+            {
+            // Read property values
+            const TSensrvPropertyId propertyId( ( TSensrvPropertyId )GetAttributeHexValue( *propertyItem, KSsyRefPropertyId ) );
+            const TInt itemIndex( GetAttributeIntValue( *propertyItem, KSsyRefItemIndex ) );
+            const TBool readOnly( ( TBool )GetAttributeIntValue( *propertyItem, KSsyRefReadOnly ) );
+            const TSensrvPropertyType propertyType( ( TSensrvPropertyType ) GetAttributeIntValue( *propertyItem, KSsyRefPropertyType ) );
+
+            // Array index must be handled in different way as it is not mandatory and it may not exist in XML file
+            TInt arrayIndex( ESensrvSingleProperty );
+
+            // Extra check is needed, otherwise this value is always '0' when it should be 'ESensrvSingleProperty' by default
+            if ( propertyItem->IsAttributeSpecified( KSsyRefArrayIndex ) )
+                {
+                // Attribute exists, now we can read the value
+                arrayIndex = GetAttributeIntValue( *propertyItem, KSsyRefArrayIndex );
+                }
+
+            // Resolve type, get correct type value and append property into list
+            switch ( propertyType )
+                {
+                case ESensrvIntProperty:
+                    {
+                    const TInt intValue( GetAttributeIntValue( *propertyItem, KSsyRefPropertyValue ) );
+                    const TInt maxValue( GetAttributeIntValue( *propertyItem, KSsyRefMaxValue ) );
+                    const TInt minValue( GetAttributeIntValue( *propertyItem, KSsyRefMinValue ) );
+                    TSensrvProperty property( propertyId, itemIndex, intValue, maxValue, minValue, readOnly, propertyType );
+                    property.SetArrayIndex( arrayIndex );
+                    tempList.Append( property );
+                    break;
+                    }
+                 case ESensrvRealProperty:
+                    {
+                    const TReal intValue( GetAttributeRealValue( *propertyItem, KSsyRefPropertyValue ) );
+                    const TReal maxValue( GetAttributeRealValue( *propertyItem, KSsyRefMaxValue ) );
+                    const TReal minValue( GetAttributeRealValue( *propertyItem, KSsyRefMinValue ) );
+                    TSensrvProperty property( propertyId, itemIndex, intValue, maxValue, minValue, readOnly, propertyType );
+                    property.SetArrayIndex( arrayIndex );
+                    tempList.Append( property );
+                    break;
+                    }
+                 case ESensrvBufferProperty:
+                    {
+                    TBuf8<KSensrvPropertyTextBufferSize> desValue;
+                    GetAttributeStrValue( *propertyItem, KSsyRefPropertyValue, desValue );
+                    TSensrvProperty property( propertyId, itemIndex, desValue, readOnly, propertyType );
+                    property.SetArrayIndex( arrayIndex );
+                    tempList.Append( property );
+                    break;
+                    }
+                default:
+                    {
+                    // Unknown property type -> leave
+                    User::Leave( KErrArgument );    
+                    }
+                }
+            }
+
+        // Next property
+        propertyItem = static_cast<CMDXMLElement*>( propertyItem->NextSibling() ); // returns NULL if next not found
+        }
+
+    // Compress temp list in case there were comment nodes
+    tempList.Compress();
+
+    // copy temp list to parameter list
+    aPropertyList = tempList;
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetElementPropertiesL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::ChannelElement
+// ---------------------------------------------------------------------------
+//
+CMDXMLElement* CSsyReferenceConfig::ChannelElement( const TInt aSrvChannelId )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ChannelElement()" ) ) );
+
+    const TInt configId( ConfigChannelId( aSrvChannelId ) );
+    TBool channelFound( EFalse );
+    
+    // Loop channel group and match configId for the channel ID in element
+    CMDXMLElement* channelItemElement = iChannelGroupElement->FirstChildOfType( KSsyRefChannelItemTag );
+    
+    for ( TInt i = 0; i < iChannelCount && !channelFound; i++ )
+        {
+        TInt channelId( GetAttributeIntValue( *channelItemElement, KSsyRefChannelId ) );
+        if ( configId == channelId  )
+            {
+            // Channel found, no  need to loop
+            channelFound = ETrue;
+            }
+        else
+            {
+            // Take next channel
+            channelItemElement = static_cast<CMDXMLElement*>( channelItemElement->NextSibling() );
+            }
+        }
+
+    // If not found, return NULL
+    if ( !channelFound )
+        {
+        channelItemElement = NULL;
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ChannelElement() - return" ) ) );
+    return channelItemElement;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::UpdateChannelIds
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::UpdateChannelIds( RSensrvChannelInfoList aChannelList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::UpdateChannelIds()" ) ) );
+    
+
+    if ( ChannelCount() == aChannelList.Count() )
+        {
+        for ( TInt i = 0; i < aChannelList.Count(); i++ )
+            {
+            iChannelPairArray[i].SetServerId( aChannelList[i].iChannelId );
+            }
+        }
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::UpdateChannelIds() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::ConfigChannelId
+// ---------------------------------------------------------------------------
+//
+TInt CSsyReferenceConfig::ConfigChannelId( const TInt aSrvChannelId ) const
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ConfigChannelId()" ) ) );    
+    TInt returnValue( 0 );
+    
+    for ( TInt i = 0; i < iChannelPairArray.Count(); i++ )
+        {
+        if ( iChannelPairArray[i].ServerId() == aSrvChannelId )
+            {
+            returnValue = iChannelPairArray[i].ConfigId();
+            }
+        }
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::ConfigChannelId() - return" ) ) );
+    return returnValue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetSensorPropertiesL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GetSensorPropertiesL( RSensrvPropertyList& aPropertyList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetSensorPropertiesL()" ) ) );
+
+    // We already have SsyGeneralInformation element, read properties from that
+    GetElementPropertiesL( *iGenralInfoElement, aPropertyList );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetSensorPropertiesL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceConfig::GetChannelPropertiesL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceConfig::GetChannelPropertiesL( 
+    const TInt aSrvChannelId, 
+    RSensrvPropertyList& aPropertyList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetChannelPropertiesL()" ) ) );
+
+    // Get channel element first
+    CMDXMLElement* channelElement = ChannelElement( aSrvChannelId );
+
+    if ( !channelElement )
+        {
+        // Leave, channel element is not found
+        User::Leave( KErrNotFound );
+        }
+
+    // Get properties of this channel element
+    GetElementPropertiesL( *channelElement, aPropertyList );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceConfig::GetChannelPropertiesL() - return" ) ) );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferenceconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,522 @@
+// ssyreferenceconfig.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+
+#ifndef SSYREFERENCECONFIG_H
+#define SSYREFERENCECONFIG_H
+
+// INCLUDES
+#include <e32base.h>
+#include <sensors/sensrvtypes.h>
+#include <sensors/sensrvchannelinfo.h>
+#include <gmxmlparser.h>
+#include <sensors/channels/ssyreferenceaccelerometer.h>
+#include <sensors/channels/ssyreferencemagnetometer.h>
+#include <sensors/channels/ssyreferenceorientation.h>
+#include <sensors/channels/ssyreferenceproximity.h>
+
+// CONSTANTS
+// Data item sizes
+const TInt KSsyRefAxisDataItemSize = sizeof( TSensrvAccelerometerAxisData );
+const TInt KSsyRefTappingDataItemSize = sizeof( TSensrvTappingData );
+const TInt KSsyRefProximityDataItemSize = sizeof( TSensrvProximityData );
+
+// ENUMS
+enum TSsyReferenceFunctions
+    {
+    ESsyReferenceOpenChannel,
+    ESsyReferenceOpenChannelResp,
+    ESsyReferenceDataItemReceived,
+    ESsyReferenceCloseChannel,
+    ESsyReferenceCloseChannelResp,
+    ESsyReferenceStartChannelData,
+    ESsyReferenceStopChannelData
+    };
+
+/**
+ * Base class for Channel data types. Contains iChannelDataType which is set
+ * by derived classes on construction.
+ */
+class TSsyRefChannelDataBase
+    {
+    public:
+    /**
+     * Enumeration for possible channel data types
+     */
+    enum TSsyRefChannelDataType
+        {
+        ESsyRefChannelTypeTapping = 5000,
+        ESsyRefChannelTypeAxis,
+        ESsyRefChannelTypeProximity,
+        ESsyRefChannelTypeAmbientLight
+        };
+   
+    TInt  ChannelDataType() const { return iChannelDataType; }
+    TInt  Interval() const { return iInterval; }
+    
+    void SetTimestamp( const TTime aTimestamp ) { iTimestamp = aTimestamp; }
+    TTime Timestamp() const { return iTimestamp; }
+
+    TInt  Size() const { return iSize; }
+
+    protected:
+
+    /**
+     * Protected constructor as this class is not supposed to be instantiate
+     * directly.
+     */
+    TSsyRefChannelDataBase() {}
+
+    protected: // data
+
+    /**
+     * Identifies the type of data type class derived from this base class
+     */
+    TInt iChannelDataType;
+    
+    /**
+     * Interval. Indicates time in ms from previous item until next item is produced
+     */
+    TInt iInterval;
+
+    /**
+     * Timestamp. Time when this data item is generated.
+     */
+    TTime iTimestamp;
+
+    /**
+     * Size of one data item. This is filled by derived class
+     */
+    TInt iSize;
+
+    /**
+     * Axis data item values. 
+     * Accessible only from TSsyRefChannelDataAxis class
+     */
+    TInt iXAxis;
+    TInt iYAxis;
+    TInt iZAxis;
+
+    
+    /**
+     * Proximity data item values.
+     * Accessible only from TSsyRefChannelProximity class
+     */    
+    TInt iProximityState;
+
+    /**
+     * AmbientLight data item values.
+     * Accessible only from TSsyRefChannelAmbientLight class
+     */    
+    TInt iAmbientLightState;
+
+    /**
+     * Tapping data item values. Difrection of the tapping.
+     * Accessible only from TSsyRefChannelDataTapping class
+     */
+    TInt iDirection;
+    };
+
+// Type definition array for Data item base class
+typedef RArray<TSsyRefChannelDataBase> TSsyRefDataItemArray;
+
+/**
+ * Message item for SSY <--> Sensor communications
+ * Contains Channel ID for which the message belongs to,
+ * Function ID that identifies the command and
+ * error for error cases. 
+ */
+class TSsyReferenceMsg
+    {
+    public:
+
+    /**
+    * Constructor of the TSsyReferenceMsg
+    *
+    * @param[in] aChannelId Channel identifier
+    * @param[in] aFunction See TSsyReferenceFunctions
+    */  
+    TSsyReferenceMsg( TInt aChannelId, TInt aFunction ) : 
+        iChannelId( aChannelId ), 
+        iFunction( aFunction ),
+        iError( KErrNone )
+        {}
+
+    /**
+     * Copy constructor of the TSsyReferenceMsg
+     *
+     * @param[in] aMsg Object to be copied to constructed object
+     */    
+    TSsyReferenceMsg( const TSsyReferenceMsg& aMsg ) :
+        iChannelId( aMsg.iChannelId ),
+        iFunction( aMsg.iFunction ),
+        iError( aMsg.iError )
+        {}
+
+    TInt ChannelId() { return iChannelId; }
+
+    void SetFunction( TInt aFunction ) { iFunction = aFunction; }
+    TInt Function()  { return iFunction; }
+
+    void SetError( TInt aError ) { iError = aError; }
+    TInt Error()     { return iError; }
+
+    void SetDataItem( TSsyRefChannelDataBase* aDataItem ) { iDataItem = aDataItem; }
+    TSsyRefChannelDataBase* DataItem() const { return iDataItem; }
+
+    private: // data
+    
+    TInt iChannelId; // Identifies the channel
+    TInt iFunction;  // Identifies the command
+    TInt iError;     // Error is passed to response handler
+    
+    // Data item for received data. This is casted to correct data item 
+    // class implementation according to ChannelDataType
+    TSsyRefChannelDataBase* iDataItem;
+    };
+
+/**
+ * Tapping data type class implementation.
+ */
+class TSsyRefChannelDataTapping : public TSsyRefChannelDataBase
+    {
+    public:
+
+    TSsyRefChannelDataTapping( TInt aDirection, TInt aInterval  )
+        { 
+        iChannelDataType = ESsyRefChannelTypeTapping;
+        iSize = KSsyRefTappingDataItemSize;
+        iInterval = aInterval;
+        iDirection = aDirection;
+        }
+    
+    TInt Direction() const { return iDirection; }
+    };
+
+/**
+ * XYZ Axis data type class implementation.
+ */
+class TSsyRefChannelDataAxis : public TSsyRefChannelDataBase
+    {
+    public:
+
+    TSsyRefChannelDataAxis( TInt aXAxis, TInt aYAxis, TInt aZAxis, 
+                            TInt aInterval )
+        { 
+        iChannelDataType = ESsyRefChannelTypeAxis;
+        iSize = KSsyRefAxisDataItemSize;
+        iInterval = aInterval; 
+        iXAxis = aXAxis;
+        iYAxis = aYAxis;
+        iZAxis = aZAxis;
+        }
+    
+    TInt XAxis() const { return iXAxis; }
+    TInt YAxis() const { return iYAxis; }
+    TInt ZAxis() const { return iZAxis; }
+    };
+
+
+/**
+ * Proximity data type class implementation.
+ */
+class TSsyRefChannelDataProximity : public TSsyRefChannelDataBase
+    {
+    public:
+
+    TSsyRefChannelDataProximity( TInt aProximityState, TInt aInterval )
+        { 
+        iChannelDataType = ESsyRefChannelTypeProximity;
+        iSize = KSsyRefProximityDataItemSize;
+        iInterval = aInterval; 
+        iProximityState = aProximityState;
+        }
+    
+    TInt ProximityState() const { return iProximityState; }
+    };
+
+/**
+ * Channel ID pair class for pairing config file channel id and
+ * Sensor Server generated channel ID.
+ */
+class TSsyRefChannelIdPair
+    {
+    public:
+    /**
+    * Constructor of the TSsyRefChannelIdPair
+    *
+    * @param[in] aConfigChannelId Channel identifier from config file
+    */  
+    TSsyRefChannelIdPair( TInt aConfigChannelId ) : 
+        iConfigChannelId( aConfigChannelId )
+        {}
+
+    TInt ConfigId() const { return iConfigChannelId; }
+    TInt ServerId() const { return iSrvChannelId; }
+
+    void SetServerId( const TInt aSrvId ) { iSrvChannelId = aSrvId; }
+
+    private: // data
+    
+    TInt iConfigChannelId; // Config file ID of the channel
+    TInt iSrvChannelId;    // Sensor server assigned ID of the channel
+    };
+
+typedef RArray<TSsyRefChannelIdPair> TSsyRefChannelIdArray;
+
+
+// CONSTANTS
+
+/**
+ *  Configuration class for SSY reference plugin. Generates configured SSY channel information.
+ *  This keeps reference SSY implementation independent from 'sensor' it uses. This class is fully
+ *  modifiable regarding to the needs of this SSY. It may be for example accelerometer sensor 
+ *  without any changes in the SSY reference implementation. Only this class is modified.
+ */
+class CSsyReferenceConfig : public CActive, public MMDXMLParserObserver
+    {
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @return Pointer to created CSsyReferenceControl object
+     */
+    static CSsyReferenceConfig* NewL();
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferenceConfig();
+
+    /**
+     * From CActive
+     */
+    void RunL();
+
+    /**
+     * From CActive
+     */
+    void DoCancel();
+
+    /**
+     * From CActive
+     */
+    TInt RunError( TInt aError );
+
+    /**
+     * From MMDXMLParserObserver
+     *
+	 * Call back function used to inform a client of the Parser when a parsing operation completes.
+	 */
+	void ParseFileCompleteL();
+
+    /**
+	 * Starts parsing config file. This function blocks until file is parsed
+	 */
+	void InitConfigL();
+
+    /**
+     * Total number of channels this SSY provides
+     *
+     * @return Count of channels this SSY is configured to provide
+     */
+    TInt ChannelCount();
+
+    /**
+     * Generates channels this SSY is configured to provide
+     *
+     * @param[in,out] aChannnelList Filled with generated channels by this configurator
+     */
+    void GenerateChannels( RSensrvChannelInfoList& aChannelList );
+
+    /**
+     * Updates Sensor server's generated channel Ids
+     *
+     * @param[in] aChannnelList Same list as GenerateChannels produces but 
+     *                this contains channel identifiers
+     */
+    void UpdateChannelIds( RSensrvChannelInfoList aChannelList );
+
+    /**
+     * Reads all channel data information from config file and fills
+     * parameters with information
+     *
+     * @param[in]     aSrvChannelId Sensor server generated channel id of the target channel
+     * @param[in,out] aDataItemList Contains data item objects defined in config file. Each
+     *                Data item is presented as Data Item class derived from TSsyRefChannelDataBase.
+     *                List can contain only one type of derived channel data items
+     * @param[in,out] aStartInterval Contains start interval to start producing data items
+     */
+    void GetChannelDataInformationL( const TInt aSrvChannelId, 
+                                     TSsyRefDataItemArray& aDataItemList, 
+                                     TInt& aStartInterval );
+
+    /**
+     * Reads sensor properties from config file and adds them to list
+     *
+     * @param[out] aPropertyList List where to append properties
+     */
+    void GetSensorPropertiesL( RSensrvPropertyList& aPropertyList );
+
+    /**
+     * Reads channel properties from config file and adds them to list
+     *
+     * @param[in] aSenSrvChannelId Sensor server generated channel id
+     * @param[out] aPropertyList List where to append properties
+     */
+    void GetChannelPropertiesL( const TInt aSrvChannelId, 
+                                RSensrvPropertyList& aPropertyList );
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CSsyReferenceConfig();
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Makes synchronous calls asynchronous
+     */
+    void IssueRequest( TInt aError = KErrNone );
+
+    /**
+     * Reads attribute value from element and casts it into TInt value
+     *
+     * @param[in] aElement Element from where to read attribute
+     * @param[in] aAttrib Attribute name which to read
+     * @return Integer value of read value
+     */
+    TInt GetAttributeIntValue( CMDXMLElement& aElement, const TDesC& aAttrib );
+
+    /**
+     * Reads attribute value from element and casts it into literal value
+     *
+     * @param[in] aElement Element from where to read attribute
+     * @param[in] aAttrib Attribute name which to read
+     * @param[in/out] aTarget Target descriptor where to copy read literal
+     */
+    void GetAttributeStrValue( CMDXMLElement& aElement, const TDesC& aAttrib, TDes8& aTarget );
+
+    /**
+     * Reads attribute value from element and casts it into TReal value
+     *
+     * @param[in] aElement Element from where to read attribute
+     * @param[in] aAttrib Attribute name which to read
+     * @return value of the attribute
+     */
+    TReal GetAttributeRealValue( CMDXMLElement& aElement, const TDesC& aAttrib );
+
+    /**
+     * Reads Hexadesimal attribute value from element and casts it into Integer value
+     *
+     * @param[in] aElement Element from where to read attribute
+     * @param[in] aAttrib Attribute name which to read
+     * @return Unsigned integer value of read Hexadesimal value
+     */
+    TUint GetAttributeHexValue( CMDXMLElement& aElement, const TDesC& aAttrib );
+
+    /**
+     * Compares Sensor server generated channel IDs and return corresponding 
+     * ConfigFile channel id
+     *
+     * @param[in] aSrvChannelId SenServer generated channel ID for which pair is needed
+     * @return ConfigFile channel ID that is paired with aSrvChannelId
+     */
+    TInt ConfigChannelId( const TInt aSrvChannelId ) const;
+
+    /**
+     * Searches channel element for given SensorServer generated channel ID
+     *
+     * @param[in] aSrvChannelId SenServer generated channel ID identifying wanted channel element
+     * @return Pointer to found channel element or NULL if not found
+     */
+    CMDXMLElement* ChannelElement( const TInt aSrvChannelId );
+
+    /**
+     * Reads properties from given element and adds them to list. 
+     * Element can be either 'SsyGenealInformation' or 'ChannelItem'
+     *
+     * @param[in]  aElement Element from where to read properties
+     * @param[out] aPropertyList List where to append properties
+     */
+    void GetElementPropertiesL( CMDXMLElement& aElement, RSensrvPropertyList& aPropertyList );
+
+
+private: // data
+    
+    /**
+     * Pointer of the config xml-file parser
+     */
+    CMDXMLParser* iConfigParser;
+
+    /**
+     * Contains Ssy general information element and all of its childs
+     */
+    CMDXMLElement* iGenralInfoElement;
+
+    /**
+     * Contains Ssy Channel information group element and all of its childs
+     * including each channel information and channel data for testing purpose
+     */
+    CMDXMLElement* iChannelGroupElement;
+
+    /**
+     * Number of channels defined in config file
+     */
+    TInt iChannelCount;
+
+    /**
+     * Active scheduler wait for blocking construction until config file is parsed
+     */
+    CActiveSchedulerWait iSchedulerWait;
+
+    /**
+     * Indicates is config file parsed
+     */
+    TBool iConfigFileParsed;
+
+    /**
+     * Channel ID pair array
+     */
+    TSsyRefChannelIdArray iChannelPairArray;
+
+    /**
+     * Elements of the config file. These needs to be stored
+     */
+    CMDXMLDocument* iConfigFile;
+    CMDXMLElement*  iSsyReferenceConfig; // Root of the config
+    };
+
+#endif //SSYREFERENCECONFIG_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencecontrol.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,281 @@
+// ssyreferencecontrol.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+
+#include <sensors/spi/ssycallback.h>                     // MSsyCallback
+#include "ssyreferencecontrol.h"
+#include "ssyreferencetrace.h"
+#include "ssyreferencechannel.h"
+#include "ssyreferencecmdhandler.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceControl::CSsyReferenceControl( MSsyCallback& aSsyCallback ) :
+    iSsyCallback( aSsyCallback )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::CSsyReferenceControl()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::CSsyReferenceControl() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceControl::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::ConstructL()" ) ) );
+
+    // Create configurator and start config file parsing
+    iConfigFile = CSsyReferenceConfig::NewL();
+    TRAPD( err, iConfigFile->InitConfigL() ); // This will block until config is ready
+
+    if ( KErrNone != err )
+        {
+        COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::ConstructL() - Init config failed: %i" ), err ) );
+        }
+
+    // ---------------------------------------------------------------
+
+    // Store channel count for later use
+    const TInt channelCount( iConfigFile->ChannelCount() );
+
+    // Instantiate channel info list
+    RSensrvChannelInfoList channelInfoList( channelCount );
+    CleanupClosePushL( channelInfoList );
+
+    // Fills channel info list with generated channel info objects
+    iConfigFile->GenerateChannels( channelInfoList );
+
+    // Register channels. Sensor Server generates unique ID for each channel
+    iSsyCallback.RegisterChannelsL( channelInfoList );
+
+    // Update channel IDs to ConfigFile
+    iConfigFile->UpdateChannelIds( channelInfoList );
+
+    // Create channels
+    iChannelArray = new ( ELeave ) CArrayPtrFlat<CSsyReferenceChannel>( channelCount );
+    for ( TInt i = 0; i < channelCount; i++ )
+        {
+        CSsyReferenceChannel* channel = CSsyReferenceChannel::NewL( *this, channelInfoList[i] );
+        iChannelArray->AppendL( channel );
+        }
+
+    // Clean up
+    CleanupStack::PopAndDestroy( &channelInfoList );
+
+    // Get properties of this SSY. Leaves with KErrNotFound if not found. These properties are 
+    // not mandatory, so we can ignore that leave
+    TRAP_IGNORE( iConfigFile->GetSensorPropertiesL( iProperties ) );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::ConstructL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceControl* CSsyReferenceControl::NewL( MSsyCallback& aSsyCallback )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::NewL()" ) ) );
+    CSsyReferenceControl* self = new ( ELeave ) CSsyReferenceControl( aSsyCallback );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceControl::~CSsyReferenceControl()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::~CSsyReferenceControl()" ) ) );
+
+    if ( iChannelArray )
+        {
+        if ( iChannelArray->Count() )
+            {
+            iChannelArray->ResetAndDestroy();
+            }
+        
+        delete iChannelArray;
+        }
+
+    if ( iConfigFile ) 
+        {
+        delete iConfigFile;
+        iConfigFile = NULL;
+        }
+
+    iProperties.Reset();
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::~CSsyReferenceControl() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::SsyCallback
+// ---------------------------------------------------------------------------
+//
+MSsyCallback& CSsyReferenceControl::SsyCallback() const
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::SsyCallback()" ) ) );
+    return iSsyCallback;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::SsyConfig
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceConfig& CSsyReferenceControl::SsyConfig() const
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::SsyConfig()" ) ) );
+    return *iConfigFile;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::FindPropertyL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceControl::FindPropertyL( 
+    const TSensrvPropertyId aPropertyId, 
+    const TInt aArrayIndex,
+    TSensrvProperty& aProperty )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::FindPropertyL()" ) ) );
+    TSensrvProperty* property = NULL;
+    TBool propertyFound( EFalse );
+
+    // Search property
+    for ( TInt i = 0; i < iProperties.Count() && !propertyFound; i++ )
+        {
+        property = static_cast<TSensrvProperty*>( &iProperties[i] );
+
+        // Compare property IDs
+        if ( property->GetPropertyId() == aPropertyId )
+            {
+            // Correct property ID is found, now check is it array type of property.
+            // Either array indexes must match or propertys array index has to be array info
+            if ( ( property->GetArrayIndex() == aArrayIndex ) || 
+                 ( ( property->GetArrayIndex() == ESensrvArrayPropertyInfo ) && 
+                   ( ESensrvSingleProperty == aArrayIndex ) ) )
+                {
+                // Correct array index found
+                propertyFound = ETrue;    
+                }
+            }
+        }
+
+    // Leave if not found
+    if ( !propertyFound )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    aProperty = *property;
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::FindPropertyL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::FindChannel
+// ---------------------------------------------------------------------------
+//
+CSsyReferenceChannel* CSsyReferenceControl::FindChannelL( TSensrvChannelId aChannelID )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::FindChannel()" ) ) );
+    
+    if ( !iChannelArray )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    const TInt channelCount( iChannelArray->Count() );
+    CSsyReferenceChannel* channel = NULL;
+
+    // Check that there are channels
+    if ( channelCount ) 
+        {
+        // Loop channels until correct channel is found
+        for ( TInt i = 0; i < channelCount; i++ ) 
+            {
+            channel = iChannelArray->At( i );
+            
+            // Compare channel id
+            if ( channel->ChannelId() == aChannelID )
+                {
+                // Channel found, no need to loop rest
+                i = channelCount;
+                }
+            }
+        }
+
+    // Leave if channel is not found
+    if ( !channel )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::FindChannel() - return" ) ) );
+    return channel;
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::OpenChannelL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceControl::OpenChannelL( TSensrvChannelId aChannelID )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::OpenChannelL()" ) ) );
+    // Find and open channel
+    User::LeaveIfError( FindChannelL( aChannelID )->OpenChannel() );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::OpenChannelL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::CloseChannelL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceControl::CloseChannelL( TSensrvChannelId aChannelID )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::CloseChannelL()" ) ) );
+    // Find and close channel
+    User::LeaveIfError( FindChannelL( aChannelID )->CloseChannel() );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::CloseChannelL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferenceControl::ProcessResponse
+// ---------------------------------------------------------------------------
+//
+void CSsyReferenceControl::ProcessResponse( TSsyReferenceMsg* /*aMessage*/ )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::ProcessResponse()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferenceControl::ProcessResponse() - return" ) ) );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencecontrol.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,156 @@
+// ssyreferencecontrol.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SSYREFERENCECONTROL_H
+#define SSYREFERENCECONTROL_H
+
+#include <sensors/spi/ssycontrol.h>
+#include "ssyreferenceconfig.h"
+
+// FORWARD DECLARATIONS
+class CSsyReferenceChannel;
+
+/**
+ *  Main control class for SSY. Controls sensor basic functionality and provides mandatory 
+ *  ECOM interface specific things.
+ */
+class CSsyReferenceControl : public CSsyControl
+    {
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @param[in] aSsyCallback Reference to SSY callback instance.
+     * @return Pointer to created CSsyReferenceControl object
+     */
+    static CSsyReferenceControl* NewL( MSsyCallback& aSsyCallback );
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferenceControl();
+
+// from base class CSsyControl
+
+    /**
+     * From CSsyControl
+     * Request for SSY to open a sensor channel asynchronously. 
+     * Response to the request is delivered through MSsyCallback::ChannelOpened().
+     * Initilizes SSY (and the sensor) to be ready for other control commands via
+     * data and property providers. Multiple OpenChannel()-requests can be
+     * active for different channels at the same time.
+     *
+     * @param[in] aChannelID Channel that is requested to be opened
+     * @return Symbian error code
+     */
+    void OpenChannelL( TSensrvChannelId aChannelID );
+
+    /**
+     * From CSsyControl
+     * Request to close a sensor channel asynchronously. 
+     * Response to the request is delivered through MSsyCallback::ChannelClosed().
+     * Multiple CloseChannel()-requests can be active for different channels 
+     * at the same time.
+     *
+     * @param[in] aChannelID Channel that is reqeusted to be closed
+     * @leave  Any One of the system wide error codes
+     */  
+    void CloseChannelL( TSensrvChannelId aChannelID );
+
+    /**
+     * Reference to SSY Callback instance
+     */
+    MSsyCallback& SsyCallback() const;
+
+    /**
+     * Reference to SSY Config file
+     */
+    CSsyReferenceConfig& SsyConfig() const;
+    /**
+     * Handles response to CSsyReferenceCmdHandler::ProcessCommand
+     *
+     * @param[in] aMessage Contains information of the response
+     */
+    void ProcessResponse( TSsyReferenceMsg* aMessage );
+
+    /**
+     * Search property of given property id from the channel properties and 
+     * returns reference to that. Leaves with KErrNotFound if property is not found
+     *
+     * @param[in]  aPropertyId Property ID to locate
+     * @param[in]  aArrayIndex Propertys array index
+     * @param[out] aProperty Contains found property
+     */
+    void FindPropertyL( const TSensrvPropertyId aPropertyId, 
+                        const TInt aArrayIndex,
+                        TSensrvProperty& aProperty );
+
+private:
+
+    /**
+     * C++ constructor.
+     *
+     * @param[in] aSsyCallback Reference to SSY callback instance.
+     */
+    CSsyReferenceControl( MSsyCallback& aSsyCallback );
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Finds and returns pointer to channel
+     */
+    CSsyReferenceChannel* FindChannelL( TSensrvChannelId aChannelID );
+
+private: // data
+
+    /**
+     * Reference to SSY CallBack to send responses to Sensor Server
+     */
+    MSsyCallback& iSsyCallback;
+
+    /**
+     * Pointer array of all channels provided by this SSY
+     */
+    CArrayPtrFlat<CSsyReferenceChannel>* iChannelArray;
+
+    /**
+     * Pointer to config file parser
+     */
+    CSsyReferenceConfig* iConfigFile;
+
+    /**
+     * Property list of general properties of this SSY
+     */
+    RSensrvPropertyList iProperties;
+    };
+
+#endif // SSYREFERENCECONTROL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencepropertyprovider.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,164 @@
+// ssyreferencepropertyprovider.cpp
+
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+#include "ssyreferencepropertyprovider.h"
+#include "ssyreferencetrace.h"
+#include "ssyreferencechannel.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider C++ constructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferencePropertyProvider::CSsyReferencePropertyProvider( CSsyReferenceChannel& aChannel ) :
+    iChannel( aChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::CSsyReferencePropertyProvider()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::CSsyReferencePropertyProvider() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::ConstructL()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::ConstructL() - return" ) ) );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::NewL
+// ---------------------------------------------------------------------------
+//
+CSsyReferencePropertyProvider* CSsyReferencePropertyProvider::NewL( CSsyReferenceChannel& aChannel )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::NewL()" ) ) );
+    CSsyReferencePropertyProvider* self = new ( ELeave ) CSsyReferencePropertyProvider( aChannel );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::NewL() - return" ) ) );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CSsyReferencePropertyProvider::~CSsyReferencePropertyProvider()
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::~CSsyReferencePropertyProvider()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::~CSsyReferencePropertyProvider() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::CheckPropertyDependenciesL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::CheckPropertyDependenciesL( 
+    const TSensrvChannelId /*aChannelId*/,
+    const TSensrvProperty& /*aProperty*/,
+    RSensrvChannelList& /*aAffectedChannels*/ )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::CheckPropertyDependenciesL()" ) ) );
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::CheckPropertyDependenciesL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::SetPropertyL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::SetPropertyL( 
+    const TSensrvChannelId aChannelId,
+    const TSensrvProperty& aProperty )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::SetPropertyL()" ) ) );
+
+    if ( iChannel.ChannelId() != aChannelId )
+        {
+        User::Leave( KErrArgument );
+        }
+
+    // Search property. Leaves with KErrNotFound if property is not found. 
+    // Leaves with KErrAccessDenied if found property is Read only
+    iChannel.FindAndUpdatePropertyL( aProperty );
+    
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::SetPropertyL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::GetPropertyL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::GetPropertyL( 
+    const TSensrvChannelId aChannelId,
+    TSensrvProperty& aProperty )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::GetPropertyL()" ) ) );
+    
+    if ( iChannel.ChannelId() != aChannelId && aChannelId != 0 )
+        {
+        User::Leave( KErrArgument );
+        }
+    else
+        {
+        // Search property. Leaves with KErrNotFound if property is not found
+        aProperty = iChannel.FindPropertyL( 
+                        aProperty.GetPropertyId(), 
+                        aProperty.PropertyItemIndex(),
+                        aProperty.GetArrayIndex() );
+        }
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::GetPropertyL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::GetAllPropertiesL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::GetAllPropertiesL( 
+    const TSensrvChannelId aChannelId,
+    RSensrvPropertyList& aChannelPropertyList )
+    {
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::GetAllPropertiesL()" ) ) );
+    
+    if ( iChannel.ChannelId() != aChannelId )
+        {
+        User::Leave( KErrArgument );
+        }
+
+    iChannel.GetProperties( aChannelPropertyList );
+
+    COMPONENT_TRACE( ( _L( "SSY Reference Plugin - CSsyReferencePropertyProvider::GetAllPropertiesL() - return" ) ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSsyReferencePropertyProvider::GetPropertyProviderInterfaceL
+// ---------------------------------------------------------------------------
+//
+void CSsyReferencePropertyProvider::GetPropertyProviderInterfaceL( TUid /*aInterfaceUid*/, 
+	                                        TAny*& aInterface )
+    {
+    aInterface = NULL;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencepropertyprovider.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,139 @@
+// ssyreferencepropertyprovider.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+
+#ifndef SSYREFERENCEPROPERTYPROVIDER_H
+#define SSYREFERENCEPROPERTYPROVIDER_H
+
+#include <sensors/spi/ssypropertyprovider.h>
+
+
+class CSsyReferenceChannel;
+
+/**
+ *  Channel property provider implementation.
+ */
+class CSsyReferencePropertyProvider : public CBase, public MSsyPropertyProvider
+    {
+
+public:
+
+    /**
+     * Two-phase constructor
+     *
+     * @param[in] aChannel Reference to channel this provider belongs to
+     * @return Pointer to created CSsyReferenceControl object
+     */
+    static CSsyReferencePropertyProvider* NewL( CSsyReferenceChannel& aChannel );
+
+    /**
+     * Virtual destructor
+     */
+    virtual ~CSsyReferencePropertyProvider();
+
+// from base class MSsyPropertyProvider
+
+    /**
+     * From MSsyPropertyProvider
+     * Check if property value affects other sensor channels already open.
+     * If the new property value is legal but affects somehow other channels' properties,
+     * SSY must return list of the affected channels so that the sensor server can
+     * check if the client allowed to set this property. If the SSY value 
+     * is not legal SSY must leave with KErrArgument-value.
+     *
+     * @param[in] aProperty Property to be checked. 
+     * @param[out] aAffectedChannels Return list of the channel which will be affected if the property 
+     *       value will be set.
+     * @leave KErrArgument If the property value is illegal.
+     */  
+    void CheckPropertyDependenciesL( const TSensrvChannelId aChannelId,
+                                     const TSensrvProperty& aProperty,
+                                     RSensrvChannelList& aAffectedChannels ); 
+
+    /**
+     * From MSsyPropertyProvider
+     * Set property for the channel. Before the sensor server sets the property value,
+     * it is checked with CheckPropertyDependenciesL()-function.
+     * This means a property value should always be valid for the SSY.
+     *
+     * @param[in] aProperty Rereference to a property object to be set
+     */  
+    void SetPropertyL( const TSensrvChannelId aChannelId, 
+                       const TSensrvProperty& aProperty );
+
+    /**
+     * From MSsyPropertyProvider
+     * Get channel property value. The property parameter contains channel id and
+     * item index. SSY fills values and attributes to the property object.
+     *
+     * @param[in, out] aProperty Reference to a property object to be filled
+     *     with property values and attributes.
+     */  
+    void GetPropertyL( const TSensrvChannelId aChannelId, 
+                       TSensrvProperty& aProperty );
+
+    /**
+     * From MSsyPropertyProvider
+     * Get all channel properties. Returns all properties which are related to this channel.
+     *
+     * @param[out] aChannelPropertyList List of the all properties of the channel.
+     */  
+    void GetAllPropertiesL( const TSensrvChannelId aChannelId,
+                            RSensrvPropertyList& aChannelPropertyList );
+
+    /** 
+    * Returns a pointer to a specified interface - to allow future extension
+    * of this class without breaking binary compatibility
+    *
+    * @param aInterfaceUid Identifier of the interface to be retrieved
+    * @param aInterface A reference to a pointer that retrieves the specified interface.
+    */
+    void GetPropertyProviderInterfaceL( TUid aInterfaceUid, 
+                                        TAny*& aInterface );
+
+private:
+
+    /**
+     * C++ constructor.
+     * @param[in] aChannel Reference to channel this provider belongs to
+     */
+    CSsyReferencePropertyProvider( CSsyReferenceChannel& aChannel );
+
+    /**
+     * Symbian 2nd phase constructor.
+     */
+    void ConstructL();
+
+private: // data
+
+    /**
+     * Reference to channel for which this provider belongs to
+     */
+    CSsyReferenceChannel& iChannel;
+    };
+
+#endif // SSYREFERENCEPROPERTYPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorsupport/testsensor/src/ssyreferencetrace.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,117 @@
+// ssyreferencetrace.h
+
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+#ifndef SSYREFERENCETRACE_H
+#define SSYREFERENCETRACE_H
+
+
+// INCLUDES
+#include <e32svr.h>
+
+
+// PC-LINT OPTIONS
+// Removes null statement not in line by itself warnings from 
+// COMPONENT_TRACE macros
+//lint -esym(960,54)
+
+// Removes "area too small" pointer cast warnings.
+//lint -e826
+
+
+
+// CONSTANTS
+// MACROS
+#ifdef _DEBUG
+
+    #ifdef THREAD_TRACE_FLAG
+    
+        #define THREAD_TRACE RDebug::Print(RThread().Name());
+        
+    #else
+        
+        #define THREAD_TRACE
+        
+    #endif // #ifdef THREAD_TRACE_FLAG
+    
+    #ifdef BUFFER_TRACE_FLAG
+    
+        #define BUFFER_TRACE_DEBUG
+        #define DEBUG_PRINT_BUFFER DebugPrintBuffer();
+        #define BUFFER_TRACE( a ) RDebug::Print a 
+        
+    #else
+        
+        #define DEBUG_PRINT_BUFFER
+        #define BUFFER_TRACE( a )
+        
+    #endif // #ifdef THREAD_TRACE_FLAG
+
+    #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE( a ) THREAD_TRACE;RDebug::Print a 
+        #define COMPONENT_TRACE_DEBUG   
+        
+    #else // #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE( a )
+
+    #endif //#ifdef COMPONENT_TRACE_FLAG
+
+    #ifdef API_TRACE_FLAG
+
+        #define API_TRACE( a ) THREAD_TRACE;RDebug::Print a
+        #define API_TRACE_DEBUG
+
+    #else //#ifdef API_TRACE_FLAG
+
+        #define API_TRACE( a )
+
+    #endif //#ifdef API_TRACE_FLAG
+
+    #ifdef ERROR_TRACE_FLAG
+
+        #define ERROR_TRACE( a ) THREAD_TRACE;RDebug::Print a
+        #define ERROR_TRACE_DEBUG
+
+    #else //#ifdef ERROR_TRACE_FLAG
+
+        #define ERROR_TRACE( a )
+
+    #endif //#ifdef ERROR_TRACE_FLAG
+
+#else // #ifdef _DEBUG
+
+    #define COMPONENT_TRACE( a )
+    #define API_TRACE( a )
+    #define ERROR_TRACE( a )
+    #define BUFFER_TRACE( a )
+    #define THREAD_TRACE
+    #define DEBUG_PRINT_BUFFER
+
+#endif //#ifdef _DEBUG
+
+#endif // SSYREFERENCETRACE_H
+
--- a/startupservices/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/Bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/Data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -25,25 +25,20 @@
 PRJ_EXPORTS
 ../rom/splashscreen.iby         CORE_MW_LAYER_IBY_EXPORT_PATH(splashscreen.iby)
 ../rom/splashscreen_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(splashscreen_variant.iby)
-#ifdef USE_SF_SPLASH_SVG
-// Export to SF-specific subdirectory
-../sfimage/sfsplash.svg         /epoc32/s60/icons/sf_startup_screen.svg 
-#endif
 
+/epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/data/z/resource/apps/qgn_startup_screen.svg
+/epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/release/winscw/udeb/z/resource/apps/qgn_startup_screen.svg
+/epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/release/winscw/urel/z/resource/apps/qgn_startup_screen.svg
 PRJ_MMPFILES
-#ifdef USE_SF_SPLASH_SVG
-sf_splashscreen.mmp
-#else
 splashscreen.mmp
-#endif
 
 PRJ_EXTENSIONS
 START EXTENSION s60/mifconv
     OPTION TARGETFILE splashscreen.mif
     OPTION HEADERFILE splashscreen.mbg
 #ifdef USE_SF_SPLASH_SVG
-    OPTION SOURCES -c8 sf_startup_screen
-#else
+		// use the local file (also called qgn_startup_screen to keep the mbg file the same)
+    OPTION SOURCEDIR ../sfimage
+#endif
     OPTION SOURCES -c8 qgn_startup_screen
-#endif
 END
--- a/startupservices/SplashScreen/group/sf_splashscreen.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  This is project specification file for the SplashScreen which
-*                displays splash screen upon booting the device.
-*
-*/
-
-macro USE_SF_SPLASH_ENUM
-#include "splashscreen.mmp"
--- a/startupservices/SplashScreen/group/splashscreen.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/group/splashscreen.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -20,7 +20,7 @@
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
 
-TARGET          SPLASHSCREEN.EXE
+TARGET          splashscreen.exe
 TARGETTYPE      EXE
 TARGETPATH      PROGRAMS_DIR
 UID             0x100039CE 0x100059DE
@@ -45,5 +45,8 @@
 LIBRARY         euser.lib 
 LIBRARY         ws32.lib
 LIBRARY         efsrv.lib
-LIBRARY         AknIcon.lib   // AknIconUtils
 LIBRARY         fbscli.lib 
+LIBRARY	    SVGEngine.lib
+LIBRARY	    gdi.lib
+LIBRARY	    cone.lib
+SMPSAFE
--- a/startupservices/SplashScreen/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/inc/SplashScreen.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/inc/SplashScreen.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 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"
@@ -42,8 +42,6 @@
 	void ConstructL(CMainWindow* aWindow);
 	void RunL();
 	void SetMainWindow(CMainWindow* aWindow);
-//protected:
-//	TCallBack iCallBack;
 private:
 	CMainWindow* iWindow;
 	};
@@ -69,7 +67,7 @@
 		// destruct
 		~CWsClient();
 		// main window
-		virtual void ConstructMainWindowL();
+		virtual void ConstructMainWindowL()=0;
 		// terminate cleanly
 		void Exit();
 		// active object protocol
@@ -157,6 +155,7 @@
 		CMainWindow (CWsClient* aClient);
 		~CMainWindow ();
 		void Draw (const TRect& aRect);
+		CFbsBitmap* ReadSVGL (TFileName aFileName);
 		void HandlePointerEvent (TPointerEvent& aPointerEvent);
 		void ConstructL (const TRect& aRect, CWindow* aParent=0);
 	private:
--- a/startupservices/SplashScreen/inc/SplashScreenDefines.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/inc/SplashScreenDefines.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 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"
@@ -20,7 +20,7 @@
 #define SPLASHSCREENDEFINES_H
 
 //CONSTANTS
-_LIT(KSplashBitmapName, "Z:SPLASHSCREEN.MIF");
+_LIT(KSplashBitmapName, "Z:QGN_STARTUP_SCREEN.SVG");
 _LIT(KPanicMsg,"SplashScreen");
 
 _LIT(KSplashScreenWindowGroup, "S60SplashScreenGroup");
@@ -28,6 +28,8 @@
 
 _LIT_SECURITY_POLICY_C1(KReadPolicy, ECapabilityReadDeviceData);
 _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
+#define SIZE_X 360
+#define SIZE_Y 360
 
 // MACROS
 #define TRACE_ADDPREFIX(aText) (TPtrC((const TText *)L"SplashScreen: \"" L##aText L"\""))
--- a/startupservices/SplashScreen/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/rom/splashscreen.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/rom/splashscreen.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -20,5 +20,6 @@
 #define __SplashScreen_IBY__
 
 file=ABI_DIR\BUILD_DIR\SplashScreen.exe             System\Programs\SplashScreen.exe
+data=DATAZ_\resource\apps\qgn_startup_screen.svg 		resource\apps\qgn_startup_screen.svg
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/SplashScreen/sfimage/qgn_startup_screen.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!-- Generator: eNetzwerk JPG2SVG 0.1 http://www.enetzwerk.de/svg -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"   "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [
+	<!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+]>
+<svg  width="360" height="640" viewBox="-12 -108 360 640" xml:space="preserve">
+	<g id="Ebene_x0020_1" style="&st0;">
+		<image width="336" height="424" xlink:href="data:image/jpeg;base64,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" transform="matrix(1 0 0 1 0 0)"/>
+	</g>
+</svg>
+
--- a/startupservices/SplashScreen/sfimage/sfsplash.svg	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?><!-- Generator: eNetzwerk JPG2SVG 0.1 http://www.enetzwerk.de/svg -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"   "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [
-	<!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
-]>
-<svg  width="400" height="400" viewBox="0 0 400 400" xml:space="preserve">
-	<g id="Ebene_x0020_1" style="&st0;">
-		<image width="400" height="400" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGQAZADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiikzQAtFMeVI13OyqPVjiqr6tZR8GcE/wCyCayqV6VP45JersVGEpfCrl2is3+3LL+8/wD3zTl1qxbrKV+qmsVj8K3b2i+9F+wq/wArNCioYruCf/Vyox9AealzXTGcZK8XdGbTTsxaKKKoQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFRySrEjO5wqjJNJtJXYJXFkmSFGeRgqr1JrBvNcdyVthsX++ep+lU7+/e9lPJEQPyr/X61Tr5LMM5nUbhQdo9+r/AMj1KGDUVzT1Y55Hkbc7szepOTTaKK8Jtt3Z3WSCiiikMAcEY7VoWur3NuQGYyoP4W6/nWfRW1GvUoy5qcrMidOM1aSOvs76G8jzGfmA+ZT1FWq4mKV4JRJGxVh0IrqNO1Bb2HnAlX7y/wBRX1mWZqsT+7qaT/M8rEYV0/ejsXqKKY8ixoXchVHUk17LaSuzkHE4ozWPc69GpK26F/8AabgVQbW70nhkX2C15VXOcJTdr39Dqhg6sle1jp80ZrmF1u9U8sjD0K/4Vct9fGQJ4sZ/iT/ClSzrCTdm2vVf8OEsHVir7m5RUUFxFcRh4nDL7dqlr1YyUleLujmaa0YUUUVQgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEzXP65eb5fsyH5VOXx3PpW3cSiCCSU9EUmuOd2d2ZjlmOSa8DPcU6dNUY7y39P+Cd2Cpc0ud9BtFFFfJHqhRRRQAUUUUAFFFFABUttO9tOssf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fpMVlWowrQdOaumVGTi+ZHEyRvFIUcYZeDmm11Gpact4m5flmHRvX2NczIjROyOpVlOCDXw+PwE8JOz1i9mezQrxqx8xtFFFcB0BRRRQAUUUUAFbejaf0u5R/uAj9aq6XpxupPMkH7lT/wB9H0rpwoAAHAFfRZNl3O1iKq0W3+f+R5+MxFv3cfmGKWiivqjzAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooATFUdQ06O9TI+WUfdb19jV+jFZVqMK0HCaumVCbg+aJxU8ElvKY5VKsP1qOuwu7KK8j2SDkdGHUVzN5YTWT4cZTs46H/CvjcwyuphXzR1h37ep69DExqaPRlWiiivKOoKu6fp73suTkRL1b+gp+n6ZJeMHfKQg8nu30rpYokhjVIwFVRgAV7mWZVKu1Vqq0fz/4BxYnFKHuw3COJIo1jQbVUYAFSUUV9ekkrI8ncKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFMeNZEKOAynqCMin0Umk1ZgYF9ohUmS15H/ADzP9KfY6IBiS669RGP61t4oAxXmLKMKqvteX5dPu/pHT9aq8vLcRUCqAAAB0Ap1FFeolY5gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/2Q==" transform="matrix(1 0 0 1 0 0)"/>
-	</g>
-</svg>
-
--- a/startupservices/SplashScreen/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/SplashScreen/src/SplashScreen.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/SplashScreen/src/SplashScreen.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -18,11 +18,13 @@
 
 // SYSTEM INCLUDES
 #include <w32std.h>
+#include <eikenv.h>
 #include <coedef.h>
 #include <data_caging_path_literals.hrh>
-#include <splashscreen.mbg>
-#include <AknIconSrvClient.h>
 #include <startupdomainpskeys.h>
+#include <SVGEngineInterfaceImpl.h>
+#include <gdi.h>
+#include <coemain.h> 
 
 // USER INCLUDES
 #include "SplashScreen.h"
@@ -243,7 +245,6 @@
 	// construct redrawer
 	iRedrawer=new (ELeave) CWsRedrawer;
 	iRedrawer->ConstructL(this);
-    User::LeaveIfError( RAknIconSrvClient::Connect() );
 	// construct main window
 	ConstructMainWindowL();
 
@@ -261,7 +262,6 @@
 CWsClient::~CWsClient()
 	{
     TRACES("CWsClient::~CWsClient(): Start");
-    RAknIconSrvClient::Disconnect();
 	// neutralize us as an active object
 	Deque(); // cancels and removes from scheduler
 	// get rid of scheduler and all attached objects
@@ -301,11 +301,6 @@
     TRACES("CWsClient::DoCancel(): End");
 	}
 
-void CWsClient::ConstructMainWindowL()
-	{
-    TRACES("CWsClient::ConstructMainWindowL()");
-	}
-
 
 
 //////////////////////////////////////////////////////////////////////////////
@@ -336,6 +331,57 @@
     TRACES("CMainWindow::~CMainWindow(): End");
 	}
 
+CFbsBitmap* CMainWindow::ReadSVGL (TFileName aFileName)
+	{
+	TRACES("CMainWindow::ReadSVGL(): Start");    
+	TFontSpec fontspec;
+    TDisplayMode mode = EColor16MA;    
+	TSize size(SIZE_X, SIZE_Y);
+
+	//if ( mode >= (TDisplayMode)13 )  { mode = EColor16MA; }
+
+	CFbsBitmap* frameBuffer = new ( ELeave ) CFbsBitmap;
+    CleanupStack::PushL( frameBuffer );
+    frameBuffer->Create( size, mode );
+	
+	CSvgEngineInterfaceImpl* svgEngine = NULL;
+	svgEngine = CSvgEngineInterfaceImpl::NewL(frameBuffer, NULL, fontspec );    
+	
+	if (svgEngine == NULL)
+		{
+		TRACES("CMainWindow::ReadSVGL(): Splashscreen SVG engine creation failed");    
+		}
+	
+	CleanupStack::PushL( svgEngine );
+	TInt domHandle = 0;
+    svgEngine->PrepareDom( aFileName, domHandle ) ;
+	if (domHandle == 0)
+		{
+		TRACES("CMainWindow::ReadSVGL(): Splashscreen DOM handle creation failed");    
+		}
+
+	CFbsBitmap* bitmap = new(ELeave) CFbsBitmap;    
+    CleanupStack::PushL( bitmap );
+    User::LeaveIfError( bitmap->Create( size, EColor64K ) );
+
+	svgEngine->UseDom( domHandle, bitmap, NULL ) ;
+	
+    MSvgError* err;
+    svgEngine->Start( err );
+	if (err->HasError())
+		{
+		TRACES("CMainWindow::ReadSVGL(): Splashscreen SVG Engine Start failed");   
+		}
+
+	svgEngine->DeleteDom( domHandle );
+    CleanupStack::Pop( bitmap );
+    CleanupStack::PopAndDestroy( svgEngine );
+    CleanupStack::PopAndDestroy( frameBuffer );
+	
+    TRACES("CMainWindow::ReadSVGL(): End");
+	return bitmap;
+	}
+
 void CMainWindow::ConstructL (const TRect& aRect, CWindow* aParent)
 	{
     TRACES("CMainWindow::ConstructL(): Start");
@@ -361,13 +407,7 @@
     if ( !err )
         {
         TRACES("CMainWindow::ConstructL(): Image found");
-#ifdef USE_SF_SPLASH_ENUM
-        iBitmap = AknIconUtils::CreateIconL( fp->FullName(), EMbmSplashscreenSf_startup_screen );
-#else
-        iBitmap = AknIconUtils::CreateIconL( fp->FullName(), EMbmSplashscreenQgn_startup_screen );
-#endif
-        AknIconUtils::ExcludeFromCache(iBitmap);
-        AknIconUtils::SetSize( iBitmap, iRect.Size(), EAspectRatioPreservedAndUnusedSpaceRemoved );
+		iBitmap = ReadSVGL(fp->FullName());
         }
     else
         {
@@ -432,8 +472,7 @@
 void CMainWindow::HandlePointerEvent (TPointerEvent& /*aPointerEvent*/)
     {
     TRACES("CMainWindow::HandlePointerEvent(): Start");
-//	TPoint point = aPointerEvent.iPosition;
-//	(void)point;
+	
     TRACES("CMainWindow::HandlePointerEvent(): End");
 	}
 
--- a/startupservices/Startup/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/MediatorPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/MediatorPlugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/MediatorPlugin/group/StartupMediatorPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/MediatorPlugin/group/StartupMediatorPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -20,14 +20,14 @@
 
 
 // Build target
-TARGET          StartupMediatorPlugin.dll
+TARGET          startupmediatorplugin.dll
 CAPABILITY      CAP_ECOM_PLUGIN
 TARGETTYPE      PLUGIN
 UID             0x10009D8D 0x102750AF
 VENDORID        VID_DEFAULT
 
 START RESOURCE  ../src/102750AF.rss
-TARGET          StartupMediatorPlugin.rsc
+TARGET          startupmediatorplugin.rsc
 TARGETPATH      resource/plugins
 END
 
@@ -45,13 +45,16 @@
 
 
 LIBRARY         euser.lib               // Core
-LIBRARY         ECom.lib                // ECom
-LIBRARY         MediatorClient.lib      // Mediator client
-LIBRARY         MediatorPluginBase.lib  // Mediator client
+LIBRARY         ecom.lib                // ECom
+LIBRARY         mediatorclient.lib      // Mediator client
+LIBRARY         mediatorpluginbase.lib  // Mediator client
 LIBRARY         featmgr.lib             // FeatureManager
 LIBRARY         centralrepository.lib   // Central Repository
 
 // Logger
 DEBUGLIBRARY    flogger.lib
 
+
+SMPSAFE
 // End of File
+
--- a/startupservices/Startup/MediatorPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/MediatorPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/aif/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/bmarm/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file startupservices/Startup/conf/startup.confml has changed
--- a/startupservices/Startup/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -36,9 +36,9 @@
 
  ../loc/startup.loc                         MW_LAYER_LOC_EXPORT_PATH(startup.loc)
 
- ../data/backup_registration.xml            /epoc32/data/z/private/100058F4/backup_registration.xml
- ../data/backup_registration.xml            /epoc32/release/winscw/udeb/z/private/100058F4/backup_registration.xml
- ../data/backup_registration.xml            /epoc32/release/winscw/urel/z/private/100058F4/backup_registration.xml
+ ../data/backup_registration.xml            /epoc32/data/z/private/100058f4/backup_registration.xml
+ ../data/backup_registration.xml            /epoc32/release/winscw/udeb/z/private/100058f4/backup_registration.xml
+ ../data/backup_registration.xml            /epoc32/release/winscw/urel/z/private/100058f4/backup_registration.xml
 
 PRJ_EXTENSIONS
 START EXTENSION s60/mifconv
--- a/startupservices/Startup/group/startup.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/group/startup.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -33,20 +33,10 @@
 
 SOURCE          StartupApplication.cpp
 SOURCE          StartupAppUi.cpp
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 SOURCE          startupanimationwrapper.cpp
 SOURCE          startupview.cpp
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-SOURCE          StartupWelcomeAnimation.cpp
-SOURCE          StartupOperatorAnimation.cpp
-SOURCE          StartupTone.cpp
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 SOURCE          StartupDocument.cpp
-SOURCE          StartupUserWelcomeNote.cpp
-SOURCE          StartupQueryDialog.cpp
 SOURCE          StartupSubscriber.cpp
-SOURCE          StartupMediatorObserver.cpp
-SOURCE          StartupPopupList.cpp
 SOURCE          StartupPubSubObserver.cpp
 
 
@@ -56,12 +46,7 @@
 LANGUAGE_IDS
 END  // RESOURCE
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  START RESOURCE  ../data/operatoranimation.rss
-  HEADER
-  TARGETPATH      APP_RESOURCE_DIR
-  END  // RESOURCE
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
 START RESOURCE 	../data/Startup_reg.rss
 HEADER
@@ -74,14 +59,15 @@
 USERINCLUDE     ../../inc
 USERINCLUDE     ../../../inc
 
+SYSTEMINCLUDE   /epoc32/include/mw/hb/hbwidgets
+
 APP_LAYER_SYSTEMINCLUDE     // dependency to app layer (Profiles)
 
 LIBRARY         eikcoctl.lib
 LIBRARY         euser.lib
 LIBRARY         apparc.lib
 LIBRARY         cone.lib
-LIBRARY         avkon.lib
-LIBRARY         eikdlg.lib
+
 LIBRARY         eikcore.lib
 LIBRARY         efsrv.lib
 LIBRARY         fbscli.lib
@@ -89,23 +75,18 @@
 LIBRARY         commonengine.lib        //use of SharedData
 LIBRARY         starterclient.lib       //use of Starter to remove splash screen
 LIBRARY         ws32.lib
-LIBRARY         aknnotify.lib           //AknGlobalNote
+
 LIBRARY         apgrfx.lib              //
-LIBRARY         Egul.lib                //DrawUtils
+LIBRARY         egul.lib                //DrawUtils
 LIBRARY         featmgr.lib
 LIBRARY         bafl.lib
-LIBRARY         timezonelocalization.lib
-LIBRARY	        tzclient.lib
-LIBRARY         AknIcon.lib
 LIBRARY         mediatorclient.lib
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 LIBRARY         sanimctrl.lib
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-LIBRARY         CdlEngine.lib
-LIBRARY         MediaClientAudio.lib    //for playing startup tone
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+LIBRARY       hbwidgets.lib
+LIBRARY       hbCore.lib
 LIBRARY         bmpanim.lib
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-LIBRARY	        gfxtrans.lib
-#endif
-LIBRARY         aknskins.lib
+
+
+SMPSAFE
--- a/startupservices/Startup/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/inc/StartupAppUi.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/inc/StartupAppUi.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -27,53 +27,27 @@
 #ifndef STARTUPAPPUI_H
 #define STARTUPAPPUI_H
 
-// FLAGS
-//#define USE_STARTUPTEST_APP
-
-
-// SYSTEM INCLUDES
-#include <aknappui.h>           //appui
-
-#include <data_caging_path_literals.hrh>
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
- #include <secondarydisplay/SecondaryDisplaySystemStateAPI.h>
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 #include <SecondaryDisplay/SecondaryDisplayStartupAPI.h>
 
 
 // USER INCLUDES
 #include "startup.hrh"          //internal state types
 #include "StartupDefines.h"     //some common defines
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
- #include "StartupTone.h"
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-
-// CONSTANTS
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
- const TInt KConnectionRetryTime = 50000;        // 50 ms
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ #include <eikappui.h>
 
 // FORWARD DECLARATIONS
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
- class CStartupWelcomeAnimation;
- class CStartupOperatorAnimation;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 class CStartupUserWelcomeNote;
 class CStartupPubSubObserver;
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
  class CStartupAnimationWrapper;
  class CStartupView;
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
- class CStartupTone;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-class CStartupMediatorObserver;
 
 /**
 *  'AppUi' class.
 *
 */
-class CStartupAppUi : public CAknAppUi
+class CStartupAppUi : public CEikAppUi //: public CAknAppUi
 {
     public: // Constructors and destructor
 
@@ -125,65 +99,13 @@
         */
         TBool HiddenReset();
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        * Continue startup when startup tone completes.
-        * @param        None
-        * @return       void
-        */
-        void ContinueStartupAfterToneL(TToneType aToneType);
 
         /**
-        * Stop startuptone
-        * @param        None
-        * @return       void
-        */
-        void StopStartupTone();
-
-        /**
-        * Stop startuptone
-        * @param        None
-        * @return       void
-        */
-        void StopOperatorTone();
-
-        /**
-        * Checks if StartupTone is playing
-        * @param        None
-        * @return       TBool
-        */
-        TBool StartupTonePlaying();
-
-        /**
-        * Checks if OperatorTone is playing
-        * @param        None
-        * @return       TBool
-        */
-        TBool OperatorTonePlaying();
-
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
         * Called when welcome or operator animation has finished.
         *
         * @since S60 3.2
         */
         void AnimationFinished();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        * Brings Startup application to foregound after Touch Screen Calibration and emergency call from PIN query.
-        * @param        None
-        * @return       void
-        */
-        void BringToForeground();
-
-        /**
-        * Send Startup application to background before Touch Screen Calibration.
-        * @param        None
-        * @return       void
-        */
-        void SendToBackground();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
         /**
         * Sets iCleanBoot to EStartupCleanBoot.
@@ -192,77 +114,6 @@
         */
         void SetCleanBoot();
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-        void WaitingTouchScreenCalibL();
-
-#ifdef RD_SCALABLE_UI_V2
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-        void TouchScreenCalibrationDoneL();
-#endif // RD_SCALABLE_UI_V2
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-		void CoverUIWelcomeAnimationSyncOKL();
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-		void WaitingCoverUIWelcomeAnimationSyncL();
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-		void CoverUIOperatorAnimationSyncOKL();
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
- 		void WaitingCoverUIOperatorAnimationSyncL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-        void WaitingCoverUIStartupReadySyncL();
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-		void CoverUIStartupReadySyncOKL();
-
-        /**
-        *
-        * @param        None
-        * @return       void
-        */
-        void RaiseCoverUIEvent( TUid aCategory,
-                                TInt aEventId,
-                                const TDesC8& aData );
 
 
         void SetCriticalBlockEndedL();
@@ -285,12 +136,12 @@
         /** System state has changed to EmergencyCallsOnly. Skip the animations. */
         void SetEmergencyCallsOnlyL();
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         /**
         * Check if animation should be loaded in advance and do it.
         */
         void TryPreLoadAnimation();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
         /**
         * Propagates fatal startup error state.
@@ -300,22 +151,6 @@
         */
         void SwStateFatalStartupErrorL( TBool aPropertyChanged );
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        * Returns value of iOfflineModeQueryShown.
-        * @param        None
-        * @return       TBool
-        */
-        TBool GetOfflineModeQueryShown();
-
-        /**
-        * Sets value of iOfflineModeQueryShown.
-        * @param        TBool
-        * @return       void
-        */
-        void SetOfflineModeQueryShown(TBool aValue);
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
         /**
         * Return value of the__SIMCARD feature
         * @param None
@@ -323,12 +158,7 @@
         */
         TBool SimSupported();
 
-        /**
-        * Return value of KFeatureIdCoverDisplay feature
-        * @param None
-        * @return TBool
-        */
-        TBool CoverUISupported();
+       
 
         /**
         *  Checks if DOS is in Offline Mode
@@ -349,31 +179,7 @@
         */
         TBool SimStatusChangedReset();
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    private:
-        /**
-        *   For starting startup tone initialization timer when needed
-        *   @param      None
-        *   @return     void
-        */
-        void WaitingStartupToneL();
-
-        /**
-        *   Callback function of startup tone initialization timer
-        *   @param      TAny*
-        *   @return     TInt
-        */
-        static TInt ToneInitTimerTimeoutL(TAny* aObject);
-
-        /**
-        *   For checking startup tone initialization status
-        *   @param      None
-        *   @return     void
-        */
-        void StartupToneWaitStatusL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    private: // from MEikMenuObserver
+    public: // from MEikMenuObserver
 
         /**
         * EPOC default constructor.
@@ -382,8 +188,9 @@
 
     private: // from CEikAppUi
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         /**
+         * Functionality Commented as no support from Qt
         * From CAknAppUi.
         * Handles a change to the application's resources which are shared across
         * the environment.
@@ -391,9 +198,10 @@
         * @since S60 3.2
         *
         * @param aType The type of resources that have changed.
-        */
+        
         void HandleResourceChangeL( TInt aType );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+        */
+
 
         /**
         *  Takes care of command handling.
@@ -439,19 +247,6 @@
         void DoStartupShowOperatorAnimationL();
 
         /**
-        *  This part of the startup phases
-        *  shows the user welcome note.
-        */
-        void DoStartupShowUserWelcomeNoteL();
-
-        /**
-        *  Returns EFalse if date, time and city
-		*  queries are disabled for testing purposes
-		*  @return TBool
-        */
-		TBool StartupQueriesEnabled();
-
-        /**
         *  Predictive Time and Country selection support
         *  Returns ETrue when enabled.
         *  @return TBool
@@ -467,13 +262,6 @@
         void DoStartupFirstBootAndRTCCheckL();
 
         /**
-        *  Shows the needed startup queries in first boot
-        *  or when real time clock value is invalid
-        *  @return    void
-        */
-        void ShowStartupQueriesL();
-
-        /**
         *  Last part of the startup phases.
         *  This part does some cleaning things and
         *  calls the Exit().
@@ -524,48 +312,7 @@
         */
         TBool UiInOfflineMode();
 
-        /**
-        *  Shows country and city selection lists to the user.
-        *  This is shown in first boot.
-        */
-        void ShowCountryAndCityListsL();
-
-        /**
-        *  Shows country selection list to the user.
-        *  This is shown in first boot.
-        *  @return    TInt
-        */
-        TInt ShowCountryListL();
-
-        /**
-        *  Shows city selection list to the user.
-        *  This is shown in first boot.
-        *  @return    TBool
-        */
-        TBool ShowCityListL(TUint8 cityGroupId);
-
-        /**
-        *  Shows time query to the user.
-        *  This is shown in first boot or when
-        *  real time clock isn't valid.
-        *  @return    TBool
-        */
-        TBool ShowTimeQueryL();
-
-        /**
-        *  Shows date query to the user.
-        *  This is shown in first boot or when
-        *  real time clock isn't valid.
-        *  @return    TBool
-        */
-        TBool ShowDateQueryL();
-
-        /**
-        *  Gets default time and date from cenrep
-        *  @param     aTime
-        *  @return    void
-        */
-        void GetDefaultTimeAndDate( TTime& aTime );
+      
 
         /**
         *  Returns information about is this the first boot happening.
@@ -586,74 +333,40 @@
         */
         void SystemFatalErrorL();
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION        
+        
         /**
         * Updates startup UI phase to Publish&Subscribe key KPSStartupUiPhase.
         *
         * @param aValue the new value to be written to the key KPSStartupUiPhase.
         */
         void UpdateStartupUiPhase( TInt aValue );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     private: // ***** Member Data ********************************************
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         // The only window-owning control of the Startup application.
         CStartupView* iMainView;
 
         // Used for showing Welcome Animation. Owned. May not be NULL.
         CStartupAnimationWrapper* iAnimation;
 
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
-        //used for showing Welcome Animation
-        CStartupWelcomeAnimation* iWelcomeAnimation;  //owns
 
-        //used for showing Operator Animation
-        CStartupOperatorAnimation* iOperatorAnimation;  //owns
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+        
 
-        //used for showing User Welcome Note
-        CStartupUserWelcomeNote* iUserWelcomeNote;  //owns
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        //used for showing welcome animation
-        CPeriodic* iAnimTimer; //owns
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
         //used for showing user welcome note
         CPeriodic* iNoteTimer; //owns
 
         //used for exiting application, smoothly without tricky errors
         CPeriodic* iExitTimer; //owns
-
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        // Used for playing startup tone
-        CStartupTone* iStartupTone; //owns
-
-        // Used for waiting startup tone initialization
-        CPeriodic* iToneInitTimer; //owns
-
-        // Used for playing operator startup tone
-        CStartupTone* iOpStartupTone; //owns
-
-        // Used for following tone initialization time
-        TInt iToneInitWaitTime;
-
-        //used for telling if the user welcome note is animation
-        TBool iAnimation;
-#endif RD_STARTUP_ANIMATION_CUSTOMIZATION
-
+        
+       
         //internal execution state
         TStartupInternalState iInternalState;
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        //is used for telling the application that
-        //splashscreen should be removed for showing the code queries
-        //or welcome note
-        TBool iSplashScreenShouldBeRemoved;
-#endif RD_STARTUP_ANIMATION_CUSTOMIZATION
 
         //is used for quarantee only one time continuing
         TBool iStartupFirstBootAndRTCCheckAlreadyCalled;
@@ -690,18 +403,14 @@
         //is used for telling if SIM card is supported
         TBool iSimSupported;
 
-        CStartupMediatorObserver* iStartupMediatorObserver; //owns
+     
+     
 
-        TBool iCoverUISupported;
-
-        TInt iCounryListIndex;
+  
 
         TTime iTime;
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        TBool iTouchScreenCalibSupport;
-        TBool iTouchScreenCalibrationDone;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 };
 
 #endif // STARTUPAPPUI_H
--- a/startupservices/Startup/inc/StartupApplication.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/inc/StartupApplication.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,7 +21,9 @@
 #define STARTUPAPPLICATION_H
 
 // INCLUDES
-#include <aknapp.h>
+
+
+#include <eikapp.h>
 
 
 // CONSTANTS
@@ -32,7 +34,7 @@
 /**
 * CStartupApp application class.
 */
-class CStartupApplication : public CAknApplication
+class CStartupApplication : public CEikApplication 
     {
     private: // from CApaApplication
         /**
--- a/startupservices/Startup/inc/StartupDocument.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/inc/StartupDocument.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,7 +21,7 @@
 #define STARTUPDOCUMENT_H
 
 // INCLUDES
-#include <AknDoc.h>
+#include <eikdoc.h>
 
 // FORWARD DECLARATIONS
 class   CEikAppUi;
@@ -31,14 +31,14 @@
 /**
 *  CStartupDocument application class.
 */
-class CStartupDocument : public CAknDocument
+class CStartupDocument : public CEikDocument
 {
     public:
 
         /**
         *   C++ default constructor.
         */
-        CStartupDocument(CEikApplication& aApp): CAknDocument(aApp) { }
+        CStartupDocument(CEikApplication& aApp): CEikDocument(aApp) { }
 
         /**
         *   Two-phased constructor.
--- a/startupservices/Startup/inc/StartupOperatorAnimation.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class is the container class of the CStartupOperatorAnimation.
-*           It is used for showing predefined animation.
-*
-*/
-
-
-
-#ifndef STARTUPOPERATORANIMATION_H
-#define STARTUPOPERATORANIMATION_H
-
-// INCLUDES
-#include <coecntrl.h>
-#include "Startup.hrh"
-#include "StartupWelcomeAnimation.h"
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-class CStartupModel;
-class CAknBitmapAnimation;
-class CStartupAppUi;
-
-// CLASS DECLARATION
-
-/**
-*  This class takes care of showing welcome animatio to the user.
-*/
-class CStartupOperatorAnimation : public CStartupWelcomeAnimation 
-    {
-    public:
-
-
-        /**
-        * Two-phased constructor.
-        */
-        static CStartupOperatorAnimation* NewL( CStartupAppUi* aStartupAppUi, const TRect& aRect);
-
-        /**
-        *  This handles the key events in this control.
-        */
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-    private:
-        /**
-        *  C++ default constructor.
-        */
-        CStartupOperatorAnimation( CStartupAppUi* aStartupAppUi );
-
-        /**
-        *  EPOC default constructor
-        */
-        void ConstructL(const TRect& aRect);
-
-		/**
-        *  Is called by Draw()-function and contains
-        *  the drawing intelligence about different states of the execution.
-        */
-        void DoDrawing() const;
-    };
-
-#endif      // STARTUPOPERATORANIMATION_H
-            
-// End of File
--- a/startupservices/Startup/inc/StartupPopupList.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  This class implements a customized pop-up 
-	             which disables LSK if no city/country match is there
-*
-*/
-
-
-#ifndef STARTUPPOPUPLIST_H
-#define STARTUPPOPUPLIST_H
-
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <eiklbx.h>
-
-NONSHARABLE_CLASS(CStartupPopupList) : public CAknPopupList, 
-                                       public MListBoxItemChangeObserver 
-{
-    private:
-        
-        /**
-        * Constructor
-        */
-        CStartupPopupList();
-
-        /**
-        * @param aListBox       Pre-existing listbox-derived class
-        * @param aCbaResource   Softkey pane to display while pop-up is active
-        */
-        void ConstructL(CAknSinglePopupMenuStyleListBox* aListBox, 
-                        TInt aCbaResource, AknPopupLayouts::TAknPopupLayouts aType);
-    
-    public:
-        /**
-        * Destructor
-        */    
-        ~CStartupPopupList();
-
-        /**
-        * Two-phased constructor.
-        * @param aListBox       Pre-existing listbox-derived class
-        * @param aCbaResource   Softkey pane to display while pop-up is active
-        * @return CStartupPopupList*
-        */
-        static CStartupPopupList* NewL(CAknSinglePopupMenuStyleListBox* 
-                                       aListBox, TInt aCbaResource, 
-                                       AknPopupLayouts::TAknPopupLayouts aType);
-                                     
-        /**
-        * From CCoeControl, handle activation of control.
-        */
-        void ActivateL();
-
-        /**
-        * From MListBoxItemChangeObserver, handle enable/disable LSK
-        */                            
-        void ListBoxItemsChanged(CEikListBox* aListBox); 
-
-        /**
-        *  From CCoeControl, handles pointer events in this control.
-        */
-        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-};
-
-#endif //STARTUPPOPUPLIST_H
-
-
-
--- a/startupservices/Startup/inc/StartupQueryDialog.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class adds send-key to acknowledge the time/date query.
-*           Feature is implemented to needs of the PET-chamber in production tests.
-*           More information can be found in Change Request-database.
-*
-*/
-
-
-#ifndef STARTUPQUERYDIALOG_H
-#define STARTUPQUERYDIALOG_H
-
-// INCLUDES
-#include <AknQueryDialog.h>       //used for Time and Date query
-
-//  FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
-* CStartupQueryDialog class.
-*/
-class CStartupQueryDialog : public CAknTimeQueryDialog
-    {
-    public://construction and destruction
-        /**
-         * C++ Constructor.
-         */
-        CStartupQueryDialog(TTime& aTime,const TTone aTone = ENoTone);
-
-        /**
-         * C++ Destructor.
-         */
-        virtual ~CStartupQueryDialog();
-
-    public:// from CCoeControl
-
-        /**
-        * From CCoeControl  Handle key events. When a key event occurs, 
-        *                   CONE calls this function for each control on the control stack, 
-        *                   until one of them returns EKeyWasConsumed to indicate that it processed the key event.  
-        * @param aKeyEvent  The key event.
-        * @param aType      The type of the event: EEventKey, EEventKeyUp or EEventKeyDown.
-        * @return           Indicates whether or not the key event was used by this control.
-        */
-	    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-    public://from MAknQueryControlObeserver
-
-		/**
-		* Called by OfferkeyEventL(), gives a change to dismiss the query with
-		* send/answer key.
-		*/
-		virtual TBool NeedToDismissQueryL(const TKeyEvent& aKeyEvent);
-		
-		/**
-		* Called by NeedToDismissQueryL(), gives a change to either accept or reject
-		* the query. Default implementation is to accept the query if the Left soft
-		* key is displayed and reject it otherwise. Left softkey is only displayed if
-		* the query has valid data into it.
-		*/
-		virtual void DismissQueryL();
-
-        /**
-        * Returns whether the left softkey is visible
-        * @return ETrue is the left softkey is visible
-        */
-        TBool IsLeftSoftkeyVisible(); 
-
-    };
-
-#endif // STARTUPAPPLICATION_H
-
-// End of file
--- a/startupservices/Startup/inc/StartupTone.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class is the container class of the CStartupTone.
-*           It is used for playing startup tone.
-*
-*/
-
-
-#ifndef __STARTUPTONE_H__
-#define __STARTUPTONE_H__
-
-//  INCLUDES
-#include <MdaAudioSamplePlayer.h>
-#include "startupdefines.h"
-#include "startup.hrh"
-
-// CLASS DECLARATION
-/**
-*  CStartupTone
-*  This class is used for playing of startup tone.
-*/
-class CStartupAppUi;
-
-class CStartupTone : public CBase, public MMdaAudioPlayerCallback
-	{
-	public:		//Constructors and destructor
-        /**
-        * C++ constructor.
-        */
-        CStartupTone( CStartupAppUi* aStartupAppUi );
-        
-        /**
-        * Two-phased constructor.
-        */
-        static CStartupTone* NewL( CStartupAppUi* aStartupAppUi, TToneType aToneType );
-
-		/**
-		* Destructor
-		*/
-		virtual ~CStartupTone();
-
-		/**
-		* Two phase constructor - this creates the audio player object
-		*/
-		void ConstructL(TToneType aToneType);
-
-	public: // New Functions
-
-		/**
-		* Play tone
-		*/
-		TInt Play();
-
-		/**
-		* Stop tone
-		*/
-        void Stop();
-
-		/**
-		* Check is tone currectly playing
-		*/        
-        TBool Playing();
-
-		/**
-		* Audio ready query
-		* @return ETrue= audio ready, EFalse=audio not ready
-		*/
-		TBool AudioReady();
-
-		/**
-		* Check if Startup tone is defined and found 
-		*/
-        TBool ToneFound();
-
-        /**
-		*/
-        void StartupWaiting(TBool aValue);
-    private:
-
-        /**
-		*/
-        TInt GetRingingToneVolumeL();
-
-	public: // Functions from base classes
-
-        /**
-        * From MMdaAudioPlayerCallback, audio initialization complete (Audio ready)
-        * @param aError
-        * @param aDuration not used internally
-        */
-		void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
-
-        /**
-        * From MMdaAudioPlayerCallback, audio playing complete
-        * @param aError
-        */
-		void MapcPlayComplete(TInt aError);
-
-	private: //data
-		CMdaAudioPlayerUtility*		iTone;
-		TBool						iAudioReady;
-		TBool						iPlaying;
-        TToneType                   iToneType;
-        CStartupAppUi*              iStartupAppUi; //uses
-        TBool                       iHiddenReset;
-        TInt                        iVolume;
-        TBool                       iStartupWaitingForTone;
-	};
-
-#endif // __STARTUPTONE_H__
-
-// End of File
--- a/startupservices/Startup/inc/StartupUserWelcomeNote.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class is the container class of the CStartupUerWelcomeNote.
-*           It is used for showing user defined image or text.
-*
-*/
-
-
-#ifndef STARTUPUSERWELCOMENOTE_H
-#define STARTUPUSERWELCOMENOTE_H
-
-// INCLUDES
-#include <coecntrl.h>
-#include "startup.hrh"
-#include "startupdomaincrkeys.h"
-
-// CONSTANTS
-const TInt KStartupTBufMaxLength( 100 );
-
-// FORWARD DECLARATIONS
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-class CStartupView;
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-class CStartupModel;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-class CStartupAppUi;
-
-// CLASS DECLARATION
-
-/**
-*  This class takes care of showing user welcome note to the user.
-*  User welcome note type can be predefined default animation,
-*  user defined image or text.
-*/
-class CStartupUserWelcomeNote
-  : public CCoeControl
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  , MCoeControlObserver
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    {
-    public:  // Constructors and destructor
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        * Two-phased constructor.
-        *
-        * @param aView The compound control that is the container for this
-        * control.
-        */
-        static CStartupUserWelcomeNote* NewL(
-            CStartupAppUi& aStartupAppUi,
-            const TRect& aRect,
-            CStartupView& aView );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *  C++ default constructor.
-        */
-        CStartupUserWelcomeNote( CStartupAppUi& aStartupAppUi );
-
-        /**
-        * Two-phased constructor.
-        */
-        static CStartupUserWelcomeNote* NewL( CStartupAppUi& aStartupAppUi, const TRect& aRect);
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        /**
-        *  Destructor
-        */
-        ~CStartupUserWelcomeNote();
-
-        /**
-        *  Returns the information about the type of 
-        *  the selected welcome note. This also consider
-        *  the product variant types of welcome note.
-        *  Return type can be animation, text or image.
-        */
-        TStartupNoteTypeInformation NoteTypeInformation();
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *  This handles the key events in this control.
-        */
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-        /**
-        *  This cancels iNoteCancelTimer
-        */
-        void CancelNoteCancelTimer();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        /**
-        *  This function performs the actual user welcome note showing.
-        */
-        void StartL();
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *  Update screen with white bitmap.
-        */
-        void DrawBlankScreen() const;
-
-        /**
-        *  EPOC default constructor
-        */
-        void ConstructL(const TRect& aRect);
-
-        /**
-        *  Sets the iUserWelcomeNoteShowing member value
-        *  @return   void
-        */
-        void SetUserWelcomeNoteShowing(TBool aValue);
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    private:
-        
-        /**
-        *  Returns the component specified by aIndex parameter.
-        */
-        CCoeControl* ComponentControl(TInt aIndex) const;
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /**
-        *  Handles the event of the control.
-        */
-        void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        /**
-        *  Loads the data about selected welcome note info from the Cental Repository.
-        */
-        TInt GetUserWelcomeNoteTypeInfo();
-
-        /**
-        *  Shows the text type of user welcome note.
-        */
-        void ShowInformationNoteWrapperL();
-
-        /**
-        *  Returns information about the selected user welcome note type.
-        *  Text, image or default(no note).
-        */
-        TStartupWelcomeNoteType UserWelcomeNoteType();
-
-        /**
-        *  Draws a image type of welcome note to the center of 
-        *  the screen. Both user selected image and operator
-        *  image as a product variant feature.
-        */
-        void DrawImageWelcomeNote();
-
-        TInt CheckImage( const TDesC& aPath);
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    private:
-
-        /**
-        *  C++ default constructor.
-        *
-        * @param aView The compound control that is the container for this
-        * control.
-        */
-        CStartupUserWelcomeNote( CStartupAppUi& aStartupAppUi, CStartupView& aView );
-
-        /**
-        * Second phase constructor.
-        */
-        void ConstructL( const TRect& aRect );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    private: // Data
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        /** Parent control for the animation control(s). */
-        CStartupView& iView;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        //Used for showing user selected image
-        CFbsBitmap* iBitmap; //owns
-        
-        //contains the type information of the user welcome note as selected from
-        //General Settings (variant information doesn't include in this)
-        TStartupWelcomeNoteType iNoteType;
-
-        //contains the possible variation information of the default user welcome note
-        TStartupUserWelcomeNoteDefaultVariationType iNoteDefaultVariationType;
-
-        //is used for storing image path information
-        TBuf<KStartupTBufMaxLength> iNotePath;
-
-        //is used for storing text note information
-        TBuf<KStartupTBufMaxLength> iNoteText;
-
-        //is used for storing image path information
-        TBuf<KStartupTBufMaxLength> iNoteOperPath;
-
-        //is used for storing text note information
-        TBuf<KStartupTBufMaxLength> iNoteOperText;
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        //stores the information about the execution state
-        //of the application. This information is used
-        //in drawing properly in current situation.
-        TStartupDrawInfo iDrawUpdateInfo;
-
-        //is uded for guarantee that RStarterSession is made
-        //and used only once when RemoveSplashScreen is called.
-        //In other words it is used for preventing needless work...
-        TBool iSplashScreenRemoved;
-
-        //is used in redrawing in various execution phases (DoDrawingL()-function)
-        TStartupNoteTypeInformation iWelcomeNoteType;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-        //is used when user cancels the welcome note showing by
-        //pressing any key. 
-        CStartupAppUi& iStartupAppUi; //uses
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        //is used when user cancels the welcome note showing by
-        //pressing any key. The reason for using callback in OfferKeyEvent()
-        //guarantees that EKeyWasConsumed is returned properly before application
-        //continues the tight execution.
-        CPeriodic* iNoteCancelTimer; //owns
-
-        //used for telling when the UWN is showing
-        TBool iUserWelcomeNoteShowing;
-
-        //used for telling if UWN is cancelled by user.
-        TBool iUserWelcomeNoteCancelled;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    };
-
-#endif      // STARTUPUSERWELCOMENOTE_H
-            
-// End of File
--- a/startupservices/Startup/inc/StartupWelcomeAnimation.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
-* Copyright (c) 2003-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class is the container class of the CStartupUerWelcomeNote.
-*           It is used for showing predefined animation.
-*
-*/
-
-
-
-#ifndef STARTUPWELCOMEANIMATION_H
-#define STARTUPWELCOMEANIMATION_H
-
-// INCLUDES
-#include <coecntrl.h>
-#include "Startup.hrh"
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-class CStartupModel;
-class CAknBitmapAnimation;
-class CStartupAppUi;
-
-// CLASS DECLARATION
-
-/**
-*  This class takes care of showing welcome animatio to the user.
-*/
-class CStartupWelcomeAnimation : public CCoeControl , MCoeControlObserver 
-    {
-    public:  // Constructors and destructor
-
-        /**
-        *  C++ default constructor.
-        */
-        CStartupWelcomeAnimation( CStartupAppUi* aStartupAppUi );
-
-        /**
-        * Two-phased constructor.
-        */
-        static CStartupWelcomeAnimation* NewL( CStartupAppUi* aStartupAppUi, const TRect& aRect);
-
-        /**
-        *  Destructor
-        */
-        ~CStartupWelcomeAnimation();      
-
-        /**
-        *  This handles the pointer events in this control.
-        */
-        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-
-        /**
-        *  This handles the key events in this control.
-        */
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-        /**
-        *  This cancels the animation.
-        */
-        void CancelAnimation();
-
-        /**
-        *  This function performs the actual user welcome note showing.
-        */
-        void StartL();
-    
-        /**
-        *  This makes the animation module to stop showing animation.
-        */
-        void EndAnimation() const;
-        
-        /**
-        *  Returns the whole duration of the animation, in milliseconds.
-        */
-        TInt ShowingTime();
-
-        /**
-        *  Update screen with white bitmap.
-        */
-        void DrawBlankScreen() const;
-
-        /**
-        *  EPOC default constructor
-        */
-        void ConstructL(const TRect& aRect);
-
-        /**
-        *  Set the info about which state in execution the 
-        *  application is, so that view class can draw window 
-        *  properly.
-        */
-        void UpdateDrawInfo( TStartupDrawInfo aValue );
-
-        /**
-        *  Removes the splashscreen
-        *  @return   void
-        */
-        void RemoveSplashScreen() const;
-
-        /**
-        *  Tells is the animation cancelled by user
-        *  @return   TBool
-        */
-        TBool IsAnimationCancelled();
-
-        /**
-        *  Sets the iAnimationShowing member value
-        *  @return   void
-        */
-        void SetAnimationShowing(TBool aValue);
-        
-        /**
-        * Handle resource change
-        * @param aType Type of change
-        */
-        void HandleResourceChange(TInt aType);        
-        
-        //TEJ
-        void CancelAnimCancelTimer();
-    private:
-        
-        /**
-        *  Is called when size is changed.
-        */
-        void SizeChanged();
-
-        /**
-        *  Returns the count of the components in the container.
-        */
-        TInt CountComponentControls() const;
-
-        /**
-        *  Returns the component specified by aIndex parameter.
-        */
-        CCoeControl* ComponentControl(TInt aIndex) const;
-
-        /**
-        *  Handles the event of the control.
-        */
-        void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-
-        /**
-        *  Is called by Draw()-function and contains
-        *  the drawing intelligence about different states of the execution.
-        */
-        virtual void DoDrawingL() const;
-
-    private: // Functions from base classes
-        
-        /**
-        *  Returns the count of the components in the container.
-        */
-        void Draw(const TRect& aRect) const;
-    
-    protected: // Data
-
-        //Used for showing animation    
-        CAknBitmapAnimation *iAnim; //owns
-
-        //Used for showing white background
-        CFbsBitmap* iBackgroundBitmap; //owns
-
-        //Is used for setting the timer over the animation
-        TInt iShowingTime; //in milli
-
-        //stores the information about the execution state
-        //of the application. This information is used
-        //in drawing properly in current situation.
-        TStartupDrawInfo iDrawUpdateInfo;
-
-        //is uded for guarantee that RStarterSession is made
-        //and used only once when RemoveSplashScreen is called.
-        //In other words it is used for preventing needless work...
-        TBool iSplashScreenRemoved;
-
-        //is used when user cancels the welcome note showing by
-        //pressing any key. 
-        CStartupAppUi* iStartupAppUi; //uses
-
-        //is used when user cancels the welcome note showing by
-        //pressing any key. The reason for using callback in OfferKeyEvent()
-        //guarantees that EKeyWasConsumed is returned properly before application
-        //continues the tight execution.
-        CPeriodic* iAnimCancelTimer; //owns
-
-        //used for telling when the animation is showing
-        TBool iAnimationShowing;
-
-        //used for telling if animation is cancelled by user.
-        TBool iAnimationCancelled;
-    };
-
-#endif      // STARTUPWELCOMEANIMATION_H
-            
-// End of File
--- a/startupservices/Startup/inc/startupview.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/inc/startupview.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007,2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,7 +21,6 @@
 
 #include <coecntrl.h>
 
-class CAknsBasicBackgroundControlContext; // Skin support
 
 /**
 *  Main view for the Startup application.
@@ -108,8 +107,7 @@
     /** Component control. */
     CCoeControl* iComponent;
 
-    /** Skin support */
-    CAknsBasicBackgroundControlContext* iBgContext;
+ 
 
     };
 
--- a/startupservices/Startup/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/pubsub/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/pubsub/StartupAppInternalPSKeys.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/pubsub/StartupAppInternalPSKeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -20,7 +20,7 @@
 #define STARTUPAPPINTERNALPSKEYS_H
 
 // INCLUDES
-#include <StartupDomainPSKeys.h>
+#include <startupdomainpskeys.h>
 
 // =============================================================================
 // Touch Screen Calibration API
--- a/startupservices/Startup/pubsub/startupappprivatepskeys.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/pubsub/startupappprivatepskeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 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"
@@ -38,4 +38,6 @@
                                       // and finished showing country & time queries.
     };
 
+const TUint32 KPSStartupAppStarted = 0x00000002;
+
 #endif // STARTUPAPPPRIVATEPSKEYS_H
--- a/startupservices/Startup/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/src/StartupAppUi.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/src/StartupAppUi.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -18,14 +18,7 @@
 
 // SYSTEM INCLUDES
 #include <StringLoader.h>
-#include <AknGlobalNote.h>          //used for Selftest failed note
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <aknSDData.h>
-#include <badesca.h>
-#include <tzlocalizationdatatypes.h>
-#include <tzlocalizer.h>
-#include <tz.h>
+
 #include <featmgr.h>                // Feature Manager
 #include <centralrepository.h>
 #include <startup.rsg>
@@ -35,52 +28,20 @@
 #include <startupdomaincrkeys.h>
 #include <CoreApplicationUIsSDKCRKeys.h>
 #include <starterclient.h>
-
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-// Transition effects
-#include <gfxtranseffect/gfxtranseffect.h>
-#include <akntranseffect.h>
-#endif
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  #include "sanimstartupctrl.h"
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-  #include <akndef.h>                 // For layout change event definitions
-  #include <AknSoundSystem.h>
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <hbdevicemessageboxsymbian.h>
+#include "sanimstartupctrl.h"
 
 // USER INCLUDES
 #include "StartupAppUi.h"
 #include "StartupApplication.h"
-#include "StartupUserWelcomeNote.h"
-#include "StartupQueryDialog.h"     //used for Startup own Time and Date queries
-#include "StartupPopupList.h"       //used for Startup own City and Country queries
-#include "StartupMediatorObserver.h"
+
 #include "StartupPubSubObserver.h"
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  #include "startupanimationwrapper.h"
-  #include "startupview.h"
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-  #include "StartupDocument.h"
-  #include "StartupOperatorAnimation.h"
-  #include "StartupTone.h"
-  #include "StartupWelcomeAnimation.h"
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include "startupanimationwrapper.h"
+#include "startupview.h"
+  
+#include <eikenv.h>
 
 
-// CONSTANTS
-const TInt KUserWelcomeNoteShowPeriodTime = 3000000; // 3 sec
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  const TInt KOneMilliSecondInMicroSeconds = 1000;
-  const TInt KMaxToneInitWait = 200; // 200 ms
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-static const TInt KMaxCityLength(120);
-static const TInt KMaxCountryLength(120);
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 static const CSAnimStartupCtrl::TAnimationParams KStartupAnimationParams =
     {
     KCRUidStartupConf,
@@ -90,15 +51,7 @@
     KStartupTonePath,
     KStartupToneVolume
     };
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
-_LIT(KEmpty, " ");
-
-// Default date and time value is used if cenrep string is not valid
-// Default date is 01.01.2007 and default time is 09:00 AM
-_LIT( KDefaultDateTimeValue, "20070000:090000" ); // YYYYMMDD:HHMMSS
-
-static const TInt KTimeFormatLength(16); // "20070000:090000."
 
 _LIT_SECURITY_POLICY_C1(KReadDeviceDataPolicy, ECapabilityReadDeviceData);
 _LIT_SECURITY_POLICY_C1(KWriteDeviceDataPolicy, ECapabilityWriteDeviceData);
@@ -106,7 +59,6 @@
 
 // ======== LOCAL FUNCTIONS ==================================================
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 namespace
     {
     TInt AnimationFinishedFunc( TAny* aPtr )
@@ -115,7 +67,7 @@
         return KErrNone;
         }
     }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
 
 // ================= MEMBER FUNCTIONS ========================================
@@ -124,17 +76,8 @@
 // CStartupAppUi::CStartupAppUi()
 // ---------------------------------------------------------------------------
 CStartupAppUi::CStartupAppUi() :
-    iUserWelcomeNote( NULL ),
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iStartupTone( NULL ),
-    iOpStartupTone( NULL ),
-    iToneInitWaitTime( 0 ),
-    iAnimation( EFalse ),
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iInternalState( EStartupStartingUp ),
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iSplashScreenShouldBeRemoved( EFalse ),
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+   iInternalState( EStartupStartingUp ),
+
     iStartupFirstBootAndRTCCheckAlreadyCalled( EFalse ),
     iChargingOrAlarmBoot( EFalse ),
     iFirstBoot( ETrue ),
@@ -144,15 +87,8 @@
     iCriticalBlockEnded( EFalse ),
     iSwStateFatalStartupError( EFalse ),
     iStartupWaitingShowStartupAnimation( EFalse ),
-    iSimSupported( ETrue ),
-    iStartupMediatorObserver( NULL ),
-    iCoverUISupported( EFalse ),
-    iCounryListIndex( 0 )
-    , iTime( 0 )
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    , iTouchScreenCalibSupport( EFalse )
-    , iTouchScreenCalibrationDone( EFalse )
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+    iSimSupported( ETrue )
+
     {
     TRACES("CStartupAppUi::CStartupAppUi");
     }
@@ -163,17 +99,14 @@
 void CStartupAppUi::ConstructL()
     {
     TRACES("CStartupAppUi::ConstructL()");
-    TInt flags = EStandardApp|EAknEnableSkin|EAknEnableMSK ;
-
-    BaseConstructL(flags);
+    TInt flags = EStandardApp;
+   BaseConstructL( flags );
+        
+    iMainView = CStartupView::NewL( ApplicationRect() );
+    
+   
+    iAnimation = CStartupAnimationWrapper::NewL( *iMainView );
 
-    iAvkonAppUi->SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort |
-                                   CAknAppUiBase::EDisableSendKeyLong );
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iMainView = CStartupView::NewL( ApplicationRect() );
-    iAnimation = CStartupAnimationWrapper::NewL( *iMainView );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
     TInt err = RProperty::Define( KPSUidStartupApp,
                                   KPSStartupAppState,
@@ -198,42 +131,9 @@
 
     iStartupPubSubObserver = CStartupPubSubObserver::NewL( this );
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    err = RProperty::Define( KPSUidStartup,
-                             KStartupBootIntoOffline,
-                             RProperty::EInt,
-                             KReadDeviceDataPolicy,
-                             KWriteDeviceDataPolicy );
 
-    if( KErrNone != err &&
-        KErrAlreadyExists != err )
-        {
-        TRACES1("CStartupAppUi::ConstructL(): KStartupBootIntoOffline define err %d", err);
-        }
 
-    err = RProperty::Define( KPSUidStartup,
-                             KStartupSecurityCodeQueryStatus,
-                             RProperty::EInt,
-                             KReadDeviceDataPolicy,
-                             KWriteDeviceDataPolicy );
-    if( KErrNone != err &&
-        KErrAlreadyExists != err )
-        {
-        TRACES1("CStartupAppUi::ConstructL(): KStartupSecurityCodeQueryStatus define err %d", err);
-        }
-    err = RProperty::Define( KPSUidStartup,
-                             KStartupCleanBoot,
-                             RProperty::EInt,
-                             KReadDeviceDataPolicy,
-                             KWriteDeviceDataPolicy );
-    if( KErrNone != err &&
-        KErrAlreadyExists != err )
-        {
-        TRACES1("CStartupAppUi::ConstructL(): KStartupCleanBoot define err %d", err);
-        }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
     err = RProperty::Define( KPSUidStartup,
                              KPSStartupUiPhase,
                              RProperty::EInt, 
@@ -247,7 +147,7 @@
         }
     
     UpdateStartupUiPhase( EStartupUiPhaseUninitialized );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     FeatureManager::InitializeLibL();
     if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) )
@@ -258,60 +158,30 @@
         {
         iSimSupported = EFalse;
         }
-    if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) )
-        {
-        iCoverUISupported = ETrue;
-        }
+    
 
     TRACES1("CStartupAppUi::ConstructL(): Offline mode supported: %d", iOfflineModeSupported );
     TRACES1("CStartupAppUi::ConstructL(): SIM card supported:     %d", iSimSupported );
-    TRACES1("CStartupAppUi::ConstructL(): CoverUI supported:      %d", iCoverUISupported );
-
-#if defined (RD_SCALABLE_UI_V2) && !defined(RD_STARTUP_ANIMATION_CUSTOMIZATION)
-    if ( FeatureManager::FeatureSupported(KFeatureIdPenSupport) &&
-         FeatureManager::FeatureSupported(KFeatureIdPenSupportCalibration) )
-        {
-        iTouchScreenCalibSupport = ETrue;
-        }
-#endif // RD_SCALABLE_UI_V2 && !RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    if (iCoverUISupported)
-        {
-        iStartupMediatorObserver = CStartupMediatorObserver::NewL( this );
-        }
+    
 
     iFirstBoot = FirstBoot();
     TRACES1("CStartupAppUi::ConstructL(): First boot:             %d", iFirstBoot );
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iWelcomeAnimation = CStartupWelcomeAnimation::NewL( this, ClientRect());
-    AddToStackL( iWelcomeAnimation );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+    CEikonEnv* eikEnv = CEikonEnv::Static();
 
     // Set Startup application to be system application
-    iEikonEnv->SetSystem( ETrue );
+    eikEnv->SetSystem( ETrue );
 
-    iEikonEnv->RootWin().SetOrdinalPosition(0,0);
+    eikEnv->RootWin().SetOrdinalPosition(0,0);
 
     // Disable priority changes of window server
-    iEikonEnv->WsSession().ComputeMode(
+    eikEnv->WsSession().ComputeMode(
         RWsSession::EPriorityControlDisabled );
+   iNoteTimer = CPeriodic::NewL( EPriorityNormal );
 
-    iNoteTimer = CPeriodic::NewL( EPriorityNormal );
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iAnimTimer = CPeriodic::NewL( EPriorityNormal );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
     iExitTimer = CPeriodic::NewL( EPriorityNormal );
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    TRACES("CStartupAppUi::ConstructL(): StartupTone: Initialising");
-    iStartupTone = CStartupTone::NewL( this, EStartupTone );
-    TRACES("CStartupAppUi::ConstructL(): StartupTone: Initialised");
-
-    TRACES("CStartupAppUi::ConstructL(): Operator StartupTone: Initialising");
-    iOpStartupTone = CStartupTone::NewL( this, EStartupOpTone );
-    TRACES("CStartupAppUi::ConstructL(): Operator StartupTone: Initialised");
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
     if ( iSwStateFatalStartupError )
         {
@@ -333,43 +203,6 @@
     {
     TRACES("CStartupAppUi::~CStartupAppUi()");
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if (iWelcomeAnimation)
-        {
-        RemoveFromStack( iWelcomeAnimation );
-        delete iWelcomeAnimation;
-        }
-
-    if (iOperatorAnimation)
-        {
-        RemoveFromStack( iOperatorAnimation);
-        delete iOperatorAnimation;
-        }
-
-    if (iUserWelcomeNote)
-        {
-        RemoveFromStack( iUserWelcomeNote );
-        delete iUserWelcomeNote;
-        iUserWelcomeNote = NULL;
-        }
-
-    if (iStartupPubSubObserver)
-        {
-        delete iStartupPubSubObserver;
-        }
-    if (iStartupMediatorObserver)
-        {
-        delete iStartupMediatorObserver;
-        }
-    if (iStartupTone)
-        {
-        delete iStartupTone;
-        }
-    if (iOpStartupTone)
-        {
-        delete iOpStartupTone;
-        }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
     if( iExitTimer )
         {
@@ -377,13 +210,7 @@
         delete iExitTimer;
         }
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if( iAnimTimer )
-        {
-        iAnimTimer->Cancel();
-        delete iAnimTimer;
-        }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     if( iNoteTimer )
         {
@@ -391,13 +218,13 @@
         delete iNoteTimer;
         }
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    delete iUserWelcomeNote;
+
+ 
     delete iAnimation;
     delete iStartupPubSubObserver;
-    delete iStartupMediatorObserver;
+   
     delete iMainView;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     FeatureManager::UnInitializeLib();
 
@@ -411,26 +238,11 @@
     {
     TRACES("CStartupAppUi::PrepareToExit()");
 
-#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
-    // Start the custom exit effect at boot time.
-    // Note: Not allowed to call GfxTransEffect::EndFullScreen() as AVKON takes care of that when
-    // EApplicationExit context is used!
+
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if ( !( iAnimation->WasCancelled() ) )
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if( !iWelcomeAnimation->IsAnimationCancelled() )
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        {
-        TRACES("CStartupAppUi::PrepareToExit(): Starting transition effect");
+ 
+	CEikAppUi::PrepareToExit();
 
-        GfxTransEffect::BeginFullScreen( AknTransEffect::EApplicationExit, TRect(),
-            AknTransEffect::EParameterType,
-            AknTransEffect::GfxTransParam( KUidStartUp, AknTransEffect::TParameter::EAllowAtBoot ) );
-        }
-#endif
-
-    CEikAppUi::PrepareToExit();
 #ifndef RD_BOOT_CUSTOMIZABLE_AI
     if( !iChargingOrAlarmBoot )
         {
@@ -474,6 +286,7 @@
     return KErrNone;
     }
 
+
 // ---------------------------------------------------------------------------
 // CStartupAppUi::HandleKeyEventL
 // ---------------------------------------------------------------------------
@@ -512,13 +325,7 @@
             iOfflineModeQueryShown = EFalse;
             response = EKeyWasConsumed;
             }
-        else if ( iUserWelcomeNote )
-            {
-            TRACES("CStartupAppUi::HandleKeyEventL(): This key event is used to stop UserWelcomeAnimation");
-            //this is used to stop User Welcome note showing
-            StopTimingL();
-            response = EKeyWasConsumed;
-            }
+		
         else if ( ( iInternalState == EStartupShowingWelcomeAnimation ||
                     iInternalState == EStartupShowingOperatorAnimation ) &&
                    !( iAnimation->WasCancelled() ) )
@@ -534,7 +341,8 @@
     return response;
     }
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+/*
+ * Qt Support Not available..
 // ---------------------------------------------------------------------------
 // CStartupAppUi::HandleResourceChangeL
 //
@@ -544,17 +352,20 @@
     {
     TRACES("CStartupAppUi::HandleResourceChangeL()");
     TRACES1("CStartupAppUi::HandleResourceChangeL Type: %d", aType);
-
+  
+    
+     * No equivalent in Qt. 
     CAknAppUi::HandleResourceChangeL( aType );
 
     if ( aType == KEikDynamicLayoutVariantSwitch )
         {
         iMainView->SetRect( ApplicationRect() );
         }
-
+     
     TRACES("CStartupAppUi::HandleResourceChangeL(): End");
     }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+*/
 
 
 // ---------------------------------------------------------------------------
@@ -568,7 +379,8 @@
         case EEikCmdExit:
             {
             TRACES("CStartupAppUi::HandleCommandL(): EEikCmdExit");
-            Exit();
+
+			Exit();
             }
             break;
         default:
@@ -583,14 +395,13 @@
 void CStartupAppUi::DoStartupStartPartL()
     {
     TRACES("CStartupAppUi::DoStartupStartPartL()");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     TryPreLoadAnimation();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     DoNextStartupPhaseL( EStartupWaitingCriticalBlock );
     TRACES("CStartupAppUi::DoStartupStartPartL(): End");
     }
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 // ---------------------------------------------------------------------------
 // CStartupAppUi::TryPreLoadAnimation()
 // ---------------------------------------------------------------------------
@@ -621,7 +432,7 @@
         {
         iAnimation->PreLoad(
             ClientRect(),
-            *iMainView,
+			*iMainView,
             KStartupAnimationParams,
             ETrue,
             SecondaryDisplay::EStartWelcomeAnimation );
@@ -629,7 +440,7 @@
 
     TRACES("CStartupAppUi::TryPreLoadAnimation(): End");
     }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
 
 // ---------------------------------------------------------------------------
@@ -644,44 +455,24 @@
         //the same way like in the end of ShowUserWelcomeNoteL()
         TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Skip the animation and UWN because it's hidden reset");
         TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): and change internal state directly to EStartupFirstBootAndRTCCheck");
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        iWelcomeAnimation->RemoveSplashScreen();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        return;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         }
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     else
         {
         TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Show animation");
 
         iAnimation->Play(
             ClientRect(),
-            *iMainView,
+			*iMainView,
             KStartupAnimationParams,
             ETrue,
             SecondaryDisplay::EStartWelcomeAnimation,
             TCallBack( AnimationFinishedFunc, this ) );
         }
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
-    TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Play startup tone.");
-
-    // Play startup tone
-    if (iStartupTone->Play() != KErrNone)
-        {
-        // Play startup beep.
-        TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Play startup beep");
-        static_cast<CAknAppUi*>(iEikonEnv->
-                                EikAppUi())->
-                                KeySounds()->
-                                PlaySound( EAvkonSIDPowerOnTone );
-        }
-    iWelcomeAnimation->SetAnimationShowing(ETrue);
-    ShowWelcomeAnimationL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
     TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): End");
     }
@@ -699,11 +490,9 @@
         TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Skip the animation and UWN because it's hidden reset");
         TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): and change internal state directly to EStartupFirstBootAndRTCCheck");
         DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        return;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         }
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     else
         {
         TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Show animation");
@@ -717,61 +506,18 @@
         params.iVolumeKey = KStartupOperatorToneVolume;
         iAnimation->Play(
             ClientRect(),
+	
             *iMainView,
             params,
             EFalse,
             SecondaryDisplay::EStartOperatorAnimation,
             TCallBack( AnimationFinishedFunc, this ) );
         }
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if ( iOperatorAnimation->ShowingTime() )
-        {
-        TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Operator animation time defined properly");
-        iOperatorAnimation->SetAnimationShowing(ETrue);
-        iOpStartupTone->Play();
-        ShowOperatorAnimationL();
-        }
-    else
-        {
-        TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Operator animation not defined. Skip it.");
-        iOperatorAnimation->SetAnimationShowing(EFalse);
-        DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
-        }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): End");
     }
 
-// ---------------------------------------------------------------------------
-// CStartupAppUi::DoStartupShowUserWelcomeNoteL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::DoStartupShowUserWelcomeNoteL()
-    {
-    TRACES("CStartupAppUi::DoStartupShowUserWelcomeNoteL()");
-    ShowUserWelcomeNoteL();
-    TRACES("CStartupAppUi::DoStartupShowUserWelcomeNoteL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::StartupQueriesEnabled()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::StartupQueriesEnabled()
-    {
-    TRACES("CStartupAppUi::StartupQueriesEnabled()");
-
-    TInt value( EStartupQueriesEnabled );
-    CRepository* repository(NULL);
-
-    TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
-    if ( err == KErrNone )
-        {
-        err = repository->Get( KStartupQueries, value );
-        }
-    delete repository;
-
-    TRACES1("CStartupAppUi::StartupQueriesEnabled(): returns %d", value);
-    return value;
-    }
 
 // ---------------------------------------------------------------------------
 // CStartupAppUi::PredictiveTimeEnabled()
@@ -801,69 +547,46 @@
     {
     TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL()");
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     RProperty::Set( KPSUidStartup, KStartupCleanBoot, iCleanBoot );
     RProperty::Set( KPSUidStartup, KPSSplashShutdown, ESplashShutdown );
 
-    delete iUserWelcomeNote;
-    iUserWelcomeNote = NULL;
     iMainView->DrawDeferred();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     // When Predictive Time and Country Selection is enabled, no queries are
     // shown to user during first boot. Instead, Clock application gets the
     // time and location from the network and marks the first boot as done.
     if( !PredictiveTimeEnabled() )
         {
-        if( iFirstBoot && !HiddenReset() && StartupQueriesEnabled() )
+        if( iFirstBoot && !HiddenReset() ) //&& StartupQueriesEnabled() )
             {
             TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): First boot. Show city, time and date queries.");
-    
-    
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDICityTimeDateQueries );
-            iWelcomeAnimation->DrawNow();
-    
-            if (iOperatorAnimation)
-                {
-                RemoveFromStack( iOperatorAnimation );
-                delete iOperatorAnimation;
-                iOperatorAnimation = NULL;
-                }
-            if (iUserWelcomeNote)
-                {
-                RemoveFromStack( iUserWelcomeNote );
-                delete iUserWelcomeNote;
-                iUserWelcomeNote = NULL;
-                }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-            
-            ShowStartupQueriesL();
-            TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
+		    TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
             MarkFirstBoot();    
                 
             }
-        else if( !RTCStatus() && !HiddenReset() && StartupQueriesEnabled())
+		else if( !RTCStatus() && !HiddenReset() ) // && StartupQueriesEnabled())
             {
             TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): No first boot but RTCStatus is corrupted. Ask time and date");
-    #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDICityTimeDateQueries );
-            if (iUserWelcomeNote)
-                {
-                RemoveFromStack( iUserWelcomeNote );
-                delete iUserWelcomeNote;
-                iUserWelcomeNote = NULL;
-                }
-    #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    
-            ShowStartupQueriesL(); // Not first boot, so skips Country/City query
-            }
-        if( iFirstBoot && !StartupQueriesEnabled() )
+		     }
+		if( iFirstBoot )  // && !StartupQueriesEnabled() )
             {
             TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): First boot ongoing and queries are disabled.");
             MarkFirstBoot();
             }
         }
+	else
+		{
+		// Temporary fix for the defect VEZI-7YDEAR , as clock is not yet supported.
+		TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): if PredictiveTimeEnabled is set");
+		if( iFirstBoot && !HiddenReset() )
+		    {
+            TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
+            MarkFirstBoot();
+			}
+		// End of temporary fix.
+		}
 
     TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Setting KPSStartupAppState = EStartupAppStateFinished");
     TInt err = RProperty::Set( KPSUidStartupApp, KPSStartupAppState, EStartupAppStateFinished );
@@ -873,58 +596,11 @@
                 , err);
         }
 
-    DoNextStartupPhaseL( EStartupWaitingCUIStartupReady );
+    DoNextStartupPhaseL( EStartupStartupOK );
     }
 
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowStartupQueriesL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ShowStartupQueriesL()
-    {
-    TRACES("CStartupAppUi::ShowStartupQueriesL()");
-
-    TBool citysaved(EFalse);
-    TBool timesaved(EFalse);
-    TBool datesaved(EFalse);
-
-    // Get default time ( to be used only in date query )
-    GetDefaultTimeAndDate( iTime );
-
-    // Show Country, Date and Time queries ( with possibility to go back ).
-    // Country query is shown only in the first boot.
 
-    while (!timesaved)
-        {
-        while (!datesaved)
-            {
-            while (!citysaved && iFirstBoot)
-                {
-                // 1. Select time zone
-                ShowCountryAndCityListsL();
-                citysaved = ETrue;
-                TRACES1("CStartupAppUi::ShowStartupQueriesL(): citysaved = %d", citysaved );
-                }
-            // 2. Set date
-            datesaved = ShowDateQueryL();
-            TRACES1("CStartupAppUi::ShowStartupQueriesL(): datesaved = %d", datesaved );
-            if (!datesaved)
-                {
-                citysaved = EFalse;
-                }
-            }
-        // 3. Set time
-        timesaved = ShowTimeQueryL();
-        TRACES1("CStartupAppUi::ShowStartupQueriesL(): timesaved = %d", timesaved );
-        if (!timesaved)
-            {
-            datesaved = EFalse;
-            }
-        }
 
-    // All the queries completed.
-
-    TRACES("CStartupAppUi::ShowStartupQueriesL() - END");
-    }
 
 // ---------------------------------------------------------------------------
 // CStartupAppUi::DoStartupEndPart()
@@ -934,13 +610,11 @@
     TRACES("CStartupAppUi::DoStartupEndPart()");
     TRACES("CStartupAppUi::DoStartupEndPart(): STARTUP OK");
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    RProperty::Set( KPSUidStartup, KStartupCleanBoot, iCleanBoot );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION    
+  
     UpdateStartupUiPhase( EStartupUiPhaseAllDone );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 
     TRACES("CStartupAppUi::DoStartupEndPart(): Exit application.");
     iExitTimer->Start( 100000, 100000, TCallBack( DoExitApplication, this ) );
@@ -948,62 +622,6 @@
     TRACES("CStartupAppUi::DoStartupEndPart(): End");
     }
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ContinueStartupAfterToneL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ContinueStartupAfterToneL(TToneType aToneType)
-    {
-    TRACES("CStartupAppUi::ContinueStartupAfterToneL()");
-
-    if (aToneType == EStartupTone)
-        {
-        TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone type EStartupTone");
-        DoNextStartupPhaseL( EStartupWaitingCUIOperatorAnim );
-        }
-    else if (aToneType == EStartupOpTone)
-        {
-        TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone type EStartupOpTone");
-        DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
-        }
-    else
-        {
-        TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone interrupted");
-        DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-        }
-    TRACES("CStartupAppUi::ContinueStartupAfterToneL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::BringToForeground()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::BringToForeground()
-    {
-    TRACES("CStartupAppUi::BringToForeground()");
-    if ((iInternalState != EStartupWaitingTouchScreenCalib) ||
-        (iTouchScreenCalibrationDone))
-        {
-        TRACES("CStartupAppUi::BringToForeground(): Bring to foreground");
-        TApaTask self(iCoeEnv->WsSession());
-        self.SetWgId(iCoeEnv->RootWin().Identifier());
-        self.BringToForeground();
-        }
-    TRACES("CStartupAppUi::BringToForeground(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::SendToBackground()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::SendToBackground()
-    {
-    TRACES("CStartupAppUi::SendToBackground()");
-    TApaTask self(iCoeEnv->WsSession());
-    self.SetWgId(iCoeEnv->RootWin().Identifier());
-    self.SendToBackground();
-    TRACES("CStartupAppUi::SendToBackground(): End");
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
 // ---------------------------------------------------------------------------
 // CStartupAppUi::StopTimingL()
 // ---------------------------------------------------------------------------
@@ -1019,87 +637,10 @@
             TRACES("CStartupAppUi::StopTimingL(): Stopping UWN");
             iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
             iNoteTimer->Cancel();
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
             UpdateStartupUiPhase( EStartupUiPhaseUserWelcomeDone );
             DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-       iUserWelcomeNote->CancelNoteCancelTimer();
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeNoteEnd );
-            iWelcomeAnimation->DrawNow();
-            iUserWelcomeNote->SetUserWelcomeNoteShowing(EFalse);
-            TRACES("CStartupAppUi::StopTimingL(): UWN stopped");
 
-            if (iStartupTone->Playing())
-                {
-                TRACES("CStartupAppUi::StopTimingL(): Startup tone playing. Cannot continue to next phase");
-                iStartupTone->StartupWaiting(ETrue);
-                }
-            else
-                {
-                DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-                }
-            }
-        else if (iInternalState == EStartupShowingOperatorAnimation)  // EStartupShowingOperatorAnimation
-            {
-            TRACES("CStartupAppUi::StopTimingL(): Stopping animation");
-            iAnimTimer->Cancel();
-            iWelcomeAnimation->CancelAnimCancelTimer();
-            iOperatorAnimation->UpdateDrawInfo( EStartupDIOperatorAnimEnd );
-            iOperatorAnimation->SetAnimationShowing(EFalse);
-            TRACES("CStartupAppUi::StopTimingL(): operator animation showing stopped");
-            if ( iOperatorAnimation->IsAnimationCancelled())
-                {
-                TRACES("CStartupAppUi::StopTimingL(): Animation is cancelled by user and therefore UWN is not shown");
-                StopOperatorTone();
-                iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
-                DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-                }
-            else
-                {
-                // If tone is still playing wait until it completes.
-                if (iOpStartupTone->Playing())
-                    {
-                    TRACES("CStartupAppUi::StopTimingL(): Operator startup tone is still playing. Wait until it completes.");
-                    iOpStartupTone->StartupWaiting(ETrue);
-                    }
-                else
-                    {
-                    TRACES("CStartupAppUi::StopTimingL(): Lets display UWN");
-                    DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
-                    }
-                }
-            TRACES("CStartupAppUi::StopTimingL(): Operator Animation stopped");
-            }
-        else // EStartupShowingWelcomeAnimation
-            {
-            TRACES("CStartupAppUi::StopTimingL(): Stopping animation");
-            iAnimTimer->Cancel();
-            iWelcomeAnimation->CancelAnimCancelTimer();
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimEnd );
-            iWelcomeAnimation->SetAnimationShowing(EFalse);
-            TRACES("CStartupAppUi::StopTimingL(): Welcome animation showing stopped");
-
-            if ( iWelcomeAnimation->IsAnimationCancelled())
-                {
-                TRACES("CStartupAppUi::StopTimingL(): Animation is cancelled by user and therefore operator animation and UWN is not shown");
-                StopStartupTone();
-                iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
-                DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-                }
-            else
-                {
-                if (iStartupTone->Playing())
-                    {
-                    // If tone is still playing wait until it completes.
-                    iStartupTone->StartupWaiting(ETrue);
-                    }
-                else
-                    {
-                    DoNextStartupPhaseL( EStartupWaitingCUIOperatorAnim );
-                    }
-                }
-            TRACES("CStartupAppUi::StopTimingL(): Animation stopped");
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
             }
         }
 
@@ -1117,331 +658,6 @@
     TRACES("CStartupAppUi::ExitApplication(): End");
     }
 
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowWelcomeAnimationL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ShowWelcomeAnimationL()
-    {
-    TRACES("CStartupAppUi::ShowWelcomeAnimationL()");
-    __ASSERT_DEBUG( iWelcomeAnimation , PANIC( EStartupPanicClassMemberVariableIsNull ) );
-    TInt showtime = iWelcomeAnimation->ShowingTime();
-    iAnimation = ETrue;
-    TRACES("CStartupAppUi::ShowWelcomeAnimationL(): Animation timer started");
-    iAnimTimer->Start(
-            showtime*KOneMilliSecondInMicroSeconds,
-            showtime*KOneMilliSecondInMicroSeconds,
-            TCallBack( DoStopTimingL, this ) );
-    iWelcomeAnimation->StartL();
-    TRACES("CStartupAppUi::ShowWelcomeAnimationL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowOperatorAnimationL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ShowOperatorAnimationL()
-    {
-    TRACES("CStartupAppUi::ShowOperatorAnimationL()");
-    __ASSERT_DEBUG( iOperatorAnimation , PANIC( EStartupPanicClassMemberVariableIsNull ) );
-    TInt showtime = iOperatorAnimation->ShowingTime();
-    iAnimation = ETrue;
-    TRACES("CStartupAppUi::ShowWelcomeAnimationL(): Operator Animation timer started");
-    iAnimTimer->Start(
-        showtime*KOneMilliSecondInMicroSeconds,
-        showtime*KOneMilliSecondInMicroSeconds,
-        TCallBack( DoStopTimingL, this ) );
-    iOperatorAnimation->StartL();
-    TRACES("CStartupAppUi::ShowOperatorAnimationL(): End");
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowUserWelcomeNoteL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ShowUserWelcomeNoteL()
-    {
-    TRACES("CStartupAppUi::ShowUserWelcomeNoteL()");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iUserWelcomeNote = CStartupUserWelcomeNote::NewL( *this, ClientRect(), *iMainView );
-    TStartupNoteTypeInformation type = iUserWelcomeNote->NoteTypeInformation();
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    __ASSERT_DEBUG( iUserWelcomeNote , PANIC( EStartupPanicClassMemberVariableIsNull ) );
-    TStartupNoteTypeInformation type;
-    type = iUserWelcomeNote->NoteTypeInformation();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if( type == EStartupImage )
-        {
-        // UserWelcomeNote type is EStartupImage
-        // This type of note is shown fixed (KUserWelcomeNoteShowPeriodTime) time
-        TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): UWNTimer started (graphic)");
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        iAnimation = EFalse;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        iNoteTimer->Start(
-            KUserWelcomeNoteShowPeriodTime,
-            KUserWelcomeNoteShowPeriodTime,
-            TCallBack( DoStopTimingL, this ) );
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        iUserWelcomeNote->StartL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        }
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    else if ( type == EStartupText )
-        {
-        TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): Text UWN");
-
-        iUserWelcomeNote->StartL();
-        
-        UpdateStartupUiPhase( EStartupUiPhaseUserWelcomeDone );
-                
-        DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-        }
-    else
-        {
-        TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): No UWN");
-
-        DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    else
-        {
-        //if User Welcome Note type is ETextWelcomeNote nothing to do here,
-        //because it is implemented with Avkon globalnote
-        //or if type is EDefaultWelcomeNote no User Welcome Note is shown.
-        TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): No UWN to show or UWN is text");
-        }
-    //invoke welcome note container to show note
-    iUserWelcomeNote->StartL();
-
-    if( type == EStartupText || type == EStartupNoNote)
-        {
-        //this is called already here because timer not activated in text uwn case
-        //and so DoStopTimingL() is never called and should be called here.
-        StopTimingL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        }
-
-    TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): End");
-    }
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::WaitingTouchScreenCalibL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::WaitingTouchScreenCalibL()
-    {
-    TRACES("CStartupAppUi::WaitingTouchScreenCalibL()");
-#ifdef RD_SCALABLE_UI_V2
-
-    if( iFirstBoot && iTouchScreenCalibSupport )
-        {
-        if (iTouchScreenCalibrationDone)
-            {
-            TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Calibration already done. Continue boot up");
-            DoNextStartupPhaseL( EStartupOfflineModeQuery );
-            }
-        else
-            {
-            SendToBackground();
-
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDITouchScreenCalib );
-            iWelcomeAnimation->DrawNow();
-            TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Startup sequence halted until Touch Screen Calibration is done");
-            }
-        }
-    else
-        {
-        TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Not first boot or calibration not supported. Continue boot up");
-        DoNextStartupPhaseL( EStartupOfflineModeQuery );
-        }
-
-#else // !RD_SCALABLE_UI_V2
-    TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Calibration not supported. Continue boot up");
-    DoNextStartupPhaseL( EStartupOfflineModeQuery );
-
-#endif // RD_SCALABLE_UI_V2
-    TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): End");
-    }
-
-#ifdef RD_SCALABLE_UI_V2
-// ---------------------------------------------------------------------------
-// CStartupAppUi::TouchScreenCalibrationDoneL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::TouchScreenCalibrationDoneL()
-    {
-    TRACES("CStartupAppUi::TouchScreenCalibrationDoneL()");
-    if (iInternalState == EStartupWaitingTouchScreenCalib)
-        {
-        iTouchScreenCalibrationDone = ETrue;
-        BringToForeground();
-        DoNextStartupPhaseL( EStartupOfflineModeQuery );
-        }
-    else
-        {
-        iTouchScreenCalibrationDone = ETrue;
-        }
-    TRACES("CStartupAppUi::TouchScreenCalibrationDoneL(): End");
-    }
-#endif // RD_SCALABLE_UI_V2
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()
-    {
-    TRACES("CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()");
-    DoNextStartupPhaseL( EStartupWaitingStartupTone );
-    TRACES("CStartupAppUi::CoverUIWelcomeAnimationSyncOKL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()
-    {
-    TRACES("CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()");
-    if (iCoverUISupported)
-        {
-        iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
-                                               SecondaryDisplay::EStartWelcomeAnimation);
-        }
-    else
-        {
-        DoNextStartupPhaseL( EStartupWaitingStartupTone );
-        }
-    TRACES("CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::CoverUIOperatorAnimationSyncOKL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::CoverUIOperatorAnimationSyncOKL()
-    {
-    TRACES("CStartupAppUi::CoverUIOperatorAnimationSyncOKL()");
-    DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
-    TRACES("CStartupAppUi::CoverUIOperatorAnimationSyncOKL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()
-    {
-    TRACES("CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()");
-    if (iCoverUISupported)
-        {
-        if (iOperatorAnimation->ShowingTime())
-            {
-            iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
-                                                   SecondaryDisplay::EStartOperatorAnimation );
-            }
-        else
-            {
-            DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
-            }
-        }
-    else
-        {
-        DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
-        }
-    TRACES("CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::WaitingStartupToneL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::WaitingStartupToneL()
-    {
-    if( iStartupTone->ToneFound() && !iStartupTone->AudioReady() )
-        {
-        TRACES("CStartupAppUi::WaitingStartupToneL(): Startup tone found but not ready. Waiting tone to init");
-        iToneInitTimer = CPeriodic::NewL( EPriorityNormal );
-        iToneInitTimer->Start( KOneMilliSecondInMicroSeconds,
-                               KOneMilliSecondInMicroSeconds,
-                               TCallBack( ToneInitTimerTimeoutL, this ) );
-        }
-    else
-        {
-        TRACES("CStartupAppUi::WaitingStartupToneL(): Audio ready");
-        DoNextStartupPhaseL( EStartupShowingWelcomeAnimation );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ToneInitTimerTimeoutL()
-// ---------------------------------------------------------------------------
-TInt CStartupAppUi::ToneInitTimerTimeoutL(TAny* aObject)
-    {
-    STATIC_CAST( CStartupAppUi*, aObject )->StartupToneWaitStatusL(); // cast, and call non-static function
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::StartupToneWaitStatusL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::StartupToneWaitStatusL()
-    {
-    iToneInitWaitTime++;
-    TRACES1("CStartupAppUi::StartupToneWaitStatusL(): Total tone init wait time = %d ms", iToneInitWaitTime );
-    TBool audioReady = iStartupTone->AudioReady();
-    if ( audioReady || (iToneInitWaitTime>=KMaxToneInitWait) )
-        {
-        iToneInitTimer->Cancel();
-        delete iToneInitTimer;
-        iToneInitTimer = NULL;
-
-        TRACES1("CStartupAppUi::StartupToneWaitStatusL(): AudioReady: %d, proceed", audioReady );
-        DoNextStartupPhaseL( EStartupShowingWelcomeAnimation );
-        }
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::CoverUIStartupReadySyncOKL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::CoverUIStartupReadySyncOKL()
-    {
-    TRACES("CStartupAppUi::CoverUIStartupReadySyncOKL()");
-    DoNextStartupPhaseL( EStartupStartupOK );
-    TRACES("CStartupAppUi::CoverUIStartupReadySyncOKL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::WaitingCoverUIStartupReadySyncL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::WaitingCoverUIStartupReadySyncL()
-    {
-    TRACES("CStartupAppUi::WaitingCoverUIStartupReadySyncL()");
-    if (iCoverUISupported)
-        {
-        iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
-                                               SecondaryDisplay::EStartStartupReady);
-        }
-    else
-        {
-        DoNextStartupPhaseL( EStartupStartupOK );
-        }
-    TRACES("CStartupAppUi::WaitingCoverUIStartupReadySyncL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::RaiseCoverUIEvent()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::RaiseCoverUIEvent( TUid aCategory,
-                                       TInt aEventId,
-                                       const TDesC8& aData )
-    {
-    TRACES("CStartupAppUi::RaiseCoverUIEvent()");
-    if (iCoverUISupported)
-        {
-        iStartupMediatorObserver->RaiseEvent( aCategory,
-                                              aEventId,
-                                              aData );
-        }
-    TRACES("CStartupAppUi::RaiseCoverUIEvent(): End");
-    }
-
 // ---------------------------------------------------------------------------
 // CStartupAppUi::SetCriticalBlockEndedL()
 // ---------------------------------------------------------------------------
@@ -1466,11 +682,8 @@
     if( iCriticalBlockEnded )
         {
         TRACES("CStartupAppUi::WaitingCriticalBlockEndingL(): CriticalBlock has ended. Continue.");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
         DoNextStartupPhaseL( EStartupOfflineModeQuery );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        DoNextStartupPhaseL( EStartupWaitingTouchScreenCalib );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
         }
     TRACES("CStartupAppUi::WaitingCriticalBlockEndingL(): End");
     }
@@ -1515,7 +728,7 @@
         {
         TRACES("CStartupAppUi::SetEmergencyCallsOnlyL(): Entered emergency calls only state.");
 
-        DoNextStartupPhaseL( EStartupWaitingCUIStartupReady );
+        DoNextStartupPhaseL( EStartupStartupOK );
         }
     TRACES("CStartupAppUi::SetEmergencyCallsOnlyL(): End");
     }
@@ -1537,28 +750,6 @@
 
     TRACES("CStartupAppUi::SwStateFatalStartupErrorL(): End");
     }
-
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::GetOfflineModeQueryShown()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::GetOfflineModeQueryShown()
-    {
-    TRACES1("CStartupAppUi::GetOfflineModeQueryShown(): iOfflineModeQueryShown == %d ", iOfflineModeQueryShown );
-    return iOfflineModeQueryShown;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::SetOfflineModeQueryShown()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::SetOfflineModeQueryShown(TBool aValue)
-    {
-    TRACES1("CStartupAppUi::SetOfflineModeQueryShown(): iOfflineModeQueryShown == %d ", iOfflineModeQueryShown );
-    iOfflineModeQueryShown = aValue;
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
 // ----------------------------------------------------------------------------
 // CStartAppUi::DosInOfflineModeL()
 // ----------------------------------------------------------------------------
@@ -1641,20 +832,23 @@
         else if ( iOfflineModeSupported && DosInOfflineModeL() )
             {
             TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Offline mode query needed");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
             RProperty::Set( KPSUidStartup, KPSSplashShutdown, ESplashShutdown );
             iAnimation->BringToForeground();
             iMainView->DrawDeferred();
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-            iWelcomeAnimation->UpdateDrawInfo( EStartupDIQueriesOn );
-            iWelcomeAnimation->DrawNow();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
             iOfflineModeQueryShown = ETrue;
-            CAknQueryDialog* dlg = new (ELeave) CAknQueryDialog( CAknQueryDialog::ENoTone );
-            TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Publish dialog for Secondary UI");
-            dlg->PublishDialogL(SecondaryDisplay::ECmdShowOfflineQuery,
-                                SecondaryDisplay::KCatStartup);
-            if ( dlg->ExecuteLD( R_STARTUP_OFFLINE_MODE_QUERY ) )
+            CHbDeviceMessageBoxSymbian *aMessageBox = NULL;
+        	aMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EQuestion);
+       	 	_LIT(KText, "Continue using phone in Offline mode?");
+        	aMessageBox->SetTextL(KText);
+        	_LIT(KAcceptText, "Yes");
+        	aMessageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, KAcceptText);
+        	_LIT(KRejectText, "No");
+        	aMessageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::ERejectButton, KRejectText);
+        	//aMessageBox->SetDismissPolicy(HbPopup::NoDismiss);
+        	//define the selection button to hold user's option choice
+        	CHbDeviceMessageBoxSymbian::TButtonId selection;
+        	selection = aMessageBox->ExecL();
+            if ( selection == CHbDeviceMessageBoxSymbian::EAcceptButton )
                 {
                 TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Offline Mode query: YES -> Boot to Offline");
                 reply = 1;
@@ -1688,7 +882,7 @@
         {
         TRACES1("CStartupAppUi::ShowOfflineModeQueryL(): KStartupBootIntoOffline set err %d", err);
         }
-
+   
     TRACES("CStartupAppUi::ShowOfflineModeQueryL(): End");
     }
 
@@ -1698,395 +892,13 @@
 void CStartupAppUi::CancelAnimation()
     {
     TRACES("CStartupAppUi::CancelAnimation()");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     iAnimation->Cancel();
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iWelcomeAnimation->CancelAnimation();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
     TRACES("CStartupAppUi::CancelAnimation(): End");
     }
 
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowCountryAndCityListsL()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::ShowCountryAndCityListsL()
-    {
-    TRACES("CStartupAppUi::ShowCountryAndCityListsL()");
 
-    TInt cityselected( EFalse );
-    while ( !cityselected )
-        {
-        TRACES1("CStartupAppUi::ShowCountryAndCityListsL(): City item to focus: %d", iCounryListIndex);
-        TInt cityGroupId = ShowCountryListL();
-        TRACES1("CStartupAppUi::ShowCountryAndCityListsL(): City group id: %d", cityGroupId);
-        if ( cityGroupId != KErrCancel )
-            {
-            cityselected = ShowCityListL(cityGroupId);
-            }
-        else
-            {
-            cityselected = ETrue;
-            }
-        }
-    TRACES("CStartupAppUi::ShowCountryAndCityListsL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowCountryListL()
-// ---------------------------------------------------------------------------
-TInt CStartupAppUi::ShowCountryListL()
-    {
-    TRACES("CStartupAppUi::ShowCountryListL()");
-
-    CAknSinglePopupMenuStyleListBox* listBox =
-        new(ELeave) CAknSinglePopupMenuStyleListBox;
-    CleanupStack::PushL(listBox);
-
-    CStartupPopupList* popupList = CStartupPopupList::NewL(listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
-                                                           AknPopupLayouts::EMenuGraphicHeadingWindow );
-
-    CleanupStack::PushL(popupList);
-
-    listBox->ConstructL(popupList, EAknListBoxSelectionList | EAknListBoxScrollBarSizeExcluded);
-    listBox->CreateScrollBarFrameL( ETrue );
-    listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
-                                                        CEikScrollBarFrame::EAuto );
-
-    listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue );
-
-    CDesCArrayFlat *items = new(ELeave)CDesCArrayFlat(1);
-
-    CleanupStack::PushL(items);
-
-    CTzLocalizer* tzLocalizer = CTzLocalizer::NewL();
-    CleanupStack::PushL(tzLocalizer);
-
-    CTzLocalizedCityGroupArray* countryList;
-    countryList = tzLocalizer->GetAllCityGroupsL(CTzLocalizer::ETzAlphaNameAscending);
-    CleanupStack::PushL(countryList);
-
-    TRACES("CStartupAppUi::ShowCountryListL(): Create list of cities");
-    for(TInt i = 0; i <countryList->Count(); i++)
-        {
-        CTzLocalizedCityGroup& cityGroup = countryList->At(i);
-
-        // Check if the country name is blank.
-        // If it is blank, ignore it. Empty name shouldn't be shown in the list.
-        if(cityGroup.Name().Compare(KEmpty) != 0)
-            {
-            TBuf<KMaxCountryLength> countryitem;
-            countryitem.Insert(0,cityGroup.Name());
-            TRACES1("CStartupAppUi::ShowCountryListL(): Create country to list: %S", &countryitem);
-            items->AppendL(countryitem);
-            }
-        }
-
-    CleanupStack::PopAndDestroy( countryList );
-
-    CTextListBoxModel* model=listBox->Model();
-    model->SetItemTextArray(items);
-    model->SetOwnershipType(ELbmOwnsItemArray);
-
-    TRACES("CStartupAppUi::ShowCountryListL(): Set title");
-    // Set title
-    HBufC* title = StringLoader::LoadLC( R_QTN_SU_SELECT_COUNTRY );
-    popupList->SetTitleL(title->Des());
-    CleanupStack::PopAndDestroy( title );
-
-    popupList->EnableAdaptiveFind();
-    listBox->SetCurrentItemIndex(iCounryListIndex);
-
-    TInt cityGroupId;
-
-    if (iCoverUISupported)
-        {
-        TRACES("CStartupAppUi::ShowCountryListL(): Publish country list for Secondary UI");
-        TPckgBuf<TInt> data( SecondaryDisplay::EShowCountryQuery );
-        iStartupMediatorObserver->RaiseEvent( SecondaryDisplay::KCatStartup,
-                                              SecondaryDisplay::EMsgStartupEvent,
-                                              data );
-        }
-
-    TRACES("CStartupAppUi::ShowCountryListL(): Show the list");
-    if (popupList->ExecuteLD())
-        {
-        iCounryListIndex = listBox->CurrentItemIndex();
-        TRACES1("CStartupAppUi::ShowCountryListL(): CurrentItemIndex: %d", iCounryListIndex);
-        TPtrC countryName = listBox->Model()->ItemText(iCounryListIndex);
-
-        CTzLocalizedCityGroup* tzLocalizedCityGroup = tzLocalizer->FindCityGroupByNameL(countryName);
-        CleanupStack::PushL(tzLocalizedCityGroup);
-
-        cityGroupId = tzLocalizedCityGroup->Id();
-        CleanupStack::PopAndDestroy( tzLocalizedCityGroup );
-
-        TRACES1("CStartupAppUi::ShowCountryListL(): Selected country %S", &countryName);
-        }
-    else
-        {
-        TRACES("CStartupAppUi::ShowCountryListL(): Country list cancelled");
-        cityGroupId = KErrCancel;
-        }
-
-    CleanupStack::PopAndDestroy( tzLocalizer );
-    CleanupStack::Pop( items );
-    CleanupStack::Pop( popupList );
-    CleanupStack::PopAndDestroy( listBox ); 
-
-    TRACES1("CStartupAppUi::ShowCountryListL(): End. Return city group id: %d", cityGroupId);
-    return cityGroupId;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowCityListL()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::ShowCityListL(TUint8 cityGroupId)
-    {
-    TRACES("CStartupAppUi::ShowCityListL()");
-
-    TBool retval( ETrue );
-
-    CTzLocalizer* tzLocalizer = CTzLocalizer::NewL();
-    CleanupStack::PushL(tzLocalizer);
-
-    CTzLocalizedCityArray* cityList;
-
-    TRACES1("CStartupAppUi::ShowCityListL(): Create list of cities in group %d", cityGroupId);
-
-    cityList = tzLocalizer->GetCitiesInGroupL(cityGroupId,//cityGroup.Id(),
-                                                  CTzLocalizer::ETzAlphaNameAscending );
-    CleanupStack::PushL(cityList);
-
-    if ( cityList->Count() == 1 )
-        {
-        TRACES("CStartupAppUi::ShowCityListL(): Only one city in citygroup. This can be selected automatically.");
-
-        CTzLocalizedCity& city = cityList->At(0);
-
-        CTzLocalizedCity* tzLocalizedCity = tzLocalizer->FindCityByNameL(city.Name());
-        CleanupStack::PushL(tzLocalizedCity);
-
-        TInt timeZoneId = tzLocalizedCity->TimeZoneId();
-
-        tzLocalizer->SetTimeZoneL(timeZoneId);
-        tzLocalizer->SetFrequentlyUsedZoneL(*tzLocalizedCity, CTzLocalizedTimeZone::ECurrentZone);
-
-        CleanupStack::PopAndDestroy( tzLocalizedCity );
-        CleanupStack::PopAndDestroy( cityList );
-        CleanupStack::PopAndDestroy( tzLocalizer );
-
-        TRACES1("CStartupAppUi::ShowCityListL(): End, returns %d", retval);
-        return retval;
-        }
-
-    CAknSinglePopupMenuStyleListBox* listBox =
-        new(ELeave) CAknSinglePopupMenuStyleListBox;
-    CleanupStack::PushL(listBox);
-
-    CStartupPopupList* popupList = CStartupPopupList::NewL(listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
-                                                           AknPopupLayouts::EMenuGraphicHeadingWindow );
-
-    CleanupStack::PushL(popupList);
-
-    CDesCArrayFlat *items = new(ELeave)CDesCArrayFlat(1);
-
-    CleanupStack::PushL(items);
-
-    for(TInt j = 0; j < cityList->Count(); j++)
-        {
-        CTzLocalizedCity& city = cityList->At(j);
-
-        // Check if the city name is blank.
-        // If it is blank, ignore it. Empty name shouldn't be shown in the list.
-        if(city.Name().Compare(KEmpty) != 0)
-            {
-            TBuf<KMaxCityLength> homecityitem;
-            homecityitem.Insert(0,city.Name());
-            TRACES1("CStartupAppUi::ShowCityListL(): Create to list: %S", &homecityitem);
-            items->AppendL(homecityitem);
-            }
-        }
-
-    listBox->ConstructL(popupList, EAknListBoxSelectionList | EAknListBoxScrollBarSizeExcluded);
-    listBox->CreateScrollBarFrameL( ETrue );
-    listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
-                                                        CEikScrollBarFrame::EAuto );
-
-    listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue );
-
-    CTextListBoxModel* model=listBox->Model();
-    model->SetItemTextArray(items);
-    model->SetOwnershipType(ELbmOwnsItemArray);
-
-    TRACES("CStartupAppUi::ShowCityListL(): Set title");
-    // Set title
-    HBufC* title = StringLoader::LoadLC( R_QTN_SU_SELECT_CITY );
-    popupList->SetTitleL(title->Des());
-    CleanupStack::PopAndDestroy(title);
-
-    popupList->EnableAdaptiveFind();
-
-    if (iCoverUISupported)
-        {
-        TRACES("CStartupAppUi::ShowCountryListL(): Publish city list for Secondary UI");
-        TPckgBuf<TInt> data( SecondaryDisplay::EShowCityQuery );
-        iStartupMediatorObserver->RaiseEvent( SecondaryDisplay::KCatStartup,
-                                              SecondaryDisplay::EMsgStartupEvent,
-                                              data );
-        }
-
-    TRACES("CStartupAppUi::ShowCityListL(): Show the list");
-    if (popupList->ExecuteLD())
-        {
-        TInt index(listBox->CurrentItemIndex());
-        TRACES1("CStartupAppUi::ShowCityListL(): CurrentItemIndex: %d", index);
-        TPtrC cityName = listBox->Model()->ItemText(index);
-
-        CTzLocalizedCity* tzLocalizedCity = tzLocalizer->FindCityByNameL(cityName);
-        CleanupStack::PushL(tzLocalizedCity);
-
-        TInt timeZoneId = tzLocalizedCity->TimeZoneId();
-
-        tzLocalizer->SetTimeZoneL(timeZoneId);
-        tzLocalizer->SetFrequentlyUsedZoneL(*tzLocalizedCity, CTzLocalizedTimeZone::ECurrentZone);
-
-        CleanupStack::PopAndDestroy(tzLocalizedCity);
-
-        TRACES1("CStartupAppUi::ShowCityListL(): Selected city    %S", &cityName);
-        }
-    else
-        {
-        TRACES("CStartupAppUi::ShowCityListL(): City list cancelled");
-        retval = EFalse;
-        }
-
-    CleanupStack::Pop(items);
-    CleanupStack::Pop(popupList);
-    CleanupStack::PopAndDestroy(listBox);
-    CleanupStack::PopAndDestroy(cityList);
-    CleanupStack::PopAndDestroy(tzLocalizer);
-
-
-    TRACES("CStartupAppUi::ShowCityListL(): Home city selected");
-    TRACES1("CStartupAppUi::ShowCityListL(): End, return %d", retval);
-    return retval;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowTimeQueryL()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::ShowTimeQueryL()
-    {
-    TRACES("CStartupAppUi::ShowTimeQueryL()");
-
-    TTime time;
-    GetDefaultTimeAndDate( time );
-
-    CStartupQueryDialog* dlg = new (ELeave) CStartupQueryDialog(time, CAknQueryDialog::ENoTone);
-    TRACES("CStartupAppUi::ShowTimeQueryL(): Publish dialog for Secondary UI");
-    dlg->PublishDialogL(SecondaryDisplay::ECmdShowTimeQuery, SecondaryDisplay::KCatStartup);
-    if( dlg->ExecuteLD( R_STARTUP_TIME_SETTING_QUERY ) )
-        {
-        TTime current;
-        current.HomeTime();
-        TDateTime cTime = current.DateTime();
-        TDateTime atime = time.DateTime();
-        atime.SetYear(cTime.Year());
-        atime.SetMonth(cTime.Month());
-        atime.SetDay(cTime.Day());
-        time = atime;
-
-        RTz rtz;
-        User::LeaveIfError(rtz.Connect());
-        User::LeaveIfError(rtz.SetHomeTime(time));
-        rtz.Close();
-
-        TRACES("CStartupAppUi::ShowTimeQueryL(): End, return ETrue");
-        return ETrue;
-        }
-    else
-        {
-        //in case of poweroff key was pressed and shutdown is occuring
-        TRACES("CStartupAppUi::ShowTimeQueryL(): End, return EFalse");
-        return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::ShowDateQueryL()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::ShowDateQueryL()
-    {
-    TRACES("CStartupAppUi::ShowDateQueryL()");
-
-
-    CStartupQueryDialog* dlg = new (ELeave) CStartupQueryDialog(iTime, CAknQueryDialog::ENoTone);
-    TRACES("CStartupAppUi::ShowDateQueryL(): Publish dialog for Secondary UI");
-    dlg->PublishDialogL(SecondaryDisplay::ECmdShowDateQuery, SecondaryDisplay::KCatStartup);
-
-    TInt query( R_STARTUP_DATE_SETTING_QUERY_NOBACK );
-    if ( iFirstBoot ) 
-        {
-        query = R_STARTUP_DATE_SETTING_QUERY;
-        }
-
-    if( dlg->ExecuteLD( query ) )
-        {
-        TTime current;
-        current.HomeTime();
-        TDateTime cTime = current.DateTime();
-        TDateTime atime = iTime.DateTime();
-        atime.SetHour(cTime.Hour());
-        atime.SetMinute(cTime.Minute());
-        atime.SetSecond(cTime.Second());
-        atime.SetMicroSecond(cTime.MicroSecond());
-        iTime = atime;
-
-        RTz rtz;
-        User::LeaveIfError(rtz.Connect());
-        User::LeaveIfError(rtz.SetHomeTime(iTime));
-        rtz.Close();
-
-        TRACES("CStartupAppUi::ShowDateQueryL(): End, return ETrue");
-        return ETrue;
-        }
-    else
-        {
-        // Back key pressed. ( Or poweroff key was pressed and shutdown is occuring )
-        TRACES("CStartupAppUi::ShowDateQueryL(): End, return EFalse");
-        return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::GetDefaultTimeAndDate()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::GetDefaultTimeAndDate( TTime& aTime )
-    {
-    TRACES("CStartupAppUi::GetDefaultTimeAndDate(): Get Time and Date from CenRep");
-
-    CRepository* repository(NULL);
-
-    TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
-    if ( !err )
-        {
-        TBuf<KTimeFormatLength> buf;
-        err = repository->Get( KStartupDefaultTime, buf );
-        if( !err )
-            {
-            err = aTime.Set(buf); // returns error if cenrep time format not valid
-            }
-        }
-
-    if ( err )
-        {
-        TRACES("CStartupAppUi::GetDefaultTimeAndDate(): Failed to get valid data from CenRep. Using default");
-        aTime.Set(KDefaultDateTimeValue);
-        }
-
-    delete repository;
-    TRACES("CStartupAppUi::GetDefaultTimeAndDate(): End");
-    }
 
 // ---------------------------------------------------------------------------
 // CStartupAppUi::FirstBoot()
@@ -2188,7 +1000,7 @@
     }
 
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 // ---------------------------------------------------------------------------
 // CStartupAppUi::AnimationFinished()
 // ---------------------------------------------------------------------------
@@ -2230,7 +1042,7 @@
         }
     else if ( iInternalState == EStartupShowingOperatorAnimation )
         {
-        TRAP(err, DoNextStartupPhaseL( EStartupShowingUserWelcomeNote ));
+        TRAP(err, DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck));
         }
 
     if ( err != KErrNone )
@@ -2240,51 +1052,6 @@
 
     TRACES("CStartupAppUi::AnimationFinished(): End");
     }
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupAppUi::StopStartupTone()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::StopStartupTone()
-    {
-    TRACES("CStartupAppUi::StopStartupTone()");
-    if ((iStartupTone) && (iStartupTone->Playing()))
-        {
-        iStartupTone->Stop();
-        }
-    TRACES("CStartupAppUi::StopStartupTone(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::StopOperatorTone()
-// ---------------------------------------------------------------------------
-void CStartupAppUi::StopOperatorTone()
-    {
-    TRACES("CStartupAppUi::StopOperatorTone()");
-    if ((iOpStartupTone) && (iOpStartupTone->Playing()))
-        {
-        iOpStartupTone->Stop();
-        }
-    TRACES("CStartupAppUi::StopOperatorTone(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::StartupTonePlaying()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::StartupTonePlaying()
-    {
-    TRACES("CStartupAppUi::StartupTonePlaying()");
-    return iStartupTone->Playing();
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupAppUi::OperatorTonePlaying()
-// ---------------------------------------------------------------------------
-TBool CStartupAppUi::OperatorTonePlaying()
-    {
-    TRACES("CStartupAppUi::OperatorTonePlaying()");
-    return iOpStartupTone->Playing();
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
 // ---------------------------------------------------------------------------
 // CStartupAppUi::SetCleanBoot()
@@ -2305,14 +1072,7 @@
     return iSimSupported;
     }
 
-// ----------------------------------------------------------------------------
-// CStartupAppUi::CoverUISupported()
-// ----------------------------------------------------------------------------
-TBool CStartupAppUi::CoverUISupported()
-    {
-    TRACES("CStartupAppUi::CoverUISupported()");
-    return iCoverUISupported;
-    }
+
 
 // ---------------------------------------------------------------------------
 // CStartupAppUi::DoNextStartupPhaseL( TStartupInternalState toState )
@@ -2324,14 +1084,14 @@
 // 5    EStartupWaitingTouchScreenCalib
 // 6    EStartupWaitingPhoneLightIdle    8, 18
 // 8    EStartupOfflineModeQuery         9, 18
-// 9    EStartupWaitingCUIWelcomeAnim    10, 18
+// 9    EStartupWaitingCUIWelcomeAnim    10, 18 Removed
 // 10   EStartupWaitingStartupTone       11, 18
 // 11   EStartupShowingWelcomeAnimation  12, 14, 18
 // 12   EStartupWaitingCUIOperatorAnim   13, 18
 // 13   EStartupShowingOperatorAnimation 14, 14, 18
-// 14   EStartupShowingUserWelcomeNote   15, 18
+// 14   EStartupShowingUserWelcomeNote   15, 18 Removed
 // 15   EStartupFirstBootAndRTCCheck     16, 18
-// 16   EStartupWaitingCUIStartupReady   17, 18
+// 16   EStartupWaitingCUIStartupReady   17, 18 Removed
 // 17   EStartupStartupOK                -
 // 18   EStartupSystemFatalError         -
 
@@ -2367,42 +1127,18 @@
             {
             switch( toState )
                 {
-                case EStartupWaitingCUIStartupReady:
-                    iInternalState = EStartupWaitingCUIStartupReady;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIStartupReady");
-                    WaitingCoverUIStartupReadySyncL();
-                    break;
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-                case EStartupWaitingTouchScreenCalib:
-                    iInternalState = EStartupWaitingTouchScreenCalib;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingTouchScreenCalib");
-                    WaitingTouchScreenCalibL();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
+                case EStartupStartupOK:
+                    iInternalState = EStartupStartupOK;
+                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupStartupOK");
+                    DoStartupEndPart();
                     break;
-                default:
-                    __ASSERT_DEBUG(
-                        EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
-        case EStartupWaitingTouchScreenCalib:
-            {
-            switch( toState )
-                {
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
                 case EStartupOfflineModeQuery:
                     iInternalState = EStartupOfflineModeQuery;
                     TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupOfflineModeQuery");
                     ShowOfflineModeQueryL();
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
                     DoNextStartupPhaseL( EStartupWaitingShowStartupAnimation );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                    DoNextStartupPhaseL( EStartupWaitingCUIWelcomeAnim );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
                     break;
                 case EStartupSystemFatalError:
                     SystemFatalErrorL();
@@ -2419,20 +1155,13 @@
             {
             switch( toState )
                 {
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
                 case EStartupWaitingShowStartupAnimation:
                     iInternalState = EStartupWaitingShowStartupAnimation;
                     TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingShowStartupAnimation");
                     WaitingStartupAnimationStartL();
                     break;
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                case EStartupWaitingCUIWelcomeAnim:
-                    iInternalState = EStartupWaitingCUIWelcomeAnim;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIWelcomeAnim");
-                    WaitingCoverUIWelcomeAnimationSyncL();
-                    break;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                case EStartupSystemFatalError:
+              case EStartupSystemFatalError:
                     SystemFatalErrorL();
                     break;
                 default:
@@ -2443,50 +1172,6 @@
                 }
             }
             break;
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        case EStartupWaitingCUIWelcomeAnim:
-            {
-            switch( toState )
-                {
-                case EStartupWaitingStartupTone:
-                    iInternalState = EStartupWaitingStartupTone;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingStartupTone");
-                    WaitingStartupToneL();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
-                    break;
-                default:
-                    __ASSERT_DEBUG( EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
-        case EStartupWaitingStartupTone:
-            {
-            switch( toState )
-                {
-                case EStartupShowingWelcomeAnimation:
-                    iInternalState = EStartupShowingWelcomeAnimation;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupShowingWelcomeAnimation");
-                    iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimStart );
-                    iWelcomeAnimation->DrawNow();
-                    DoStartupShowWelcomeAnimationL();
-                    iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimEnd );
-                    iWelcomeAnimation->DrawNow();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
-                    break;
-                default:
-                    __ASSERT_DEBUG( EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
         case EStartupWaitingShowStartupAnimation:
             {
             switch( toState )
@@ -2511,19 +1196,11 @@
             {
             switch( toState )
                 {
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
                 case EStartupShowingOperatorAnimation:
                     iInternalState = EStartupShowingOperatorAnimation;
                     TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingOperatorAnimation");
                     DoStartupShowOperatorAnimationL();
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                case EStartupWaitingCUIOperatorAnim:
-                    iOperatorAnimation = CStartupOperatorAnimation::NewL( this, ClientRect());
-                    AddToStackL( iOperatorAnimation);
-                    iInternalState = EStartupWaitingCUIOperatorAnim;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupWaitingCUIOperatorAnim");
-                    WaitingCoverUIOperatorAnimationSyncL();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
                     break;
                 case EStartupFirstBootAndRTCCheck:
                     iInternalState = EStartupFirstBootAndRTCCheck;
@@ -2540,45 +1217,12 @@
                 }
             }
             break;
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        case EStartupWaitingCUIOperatorAnim:
-            {
-            switch( toState )
-                {
-                case EStartupShowingOperatorAnimation:
-                    iInternalState = EStartupShowingOperatorAnimation;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingOperatorAnimation");
-                    iOperatorAnimation->UpdateDrawInfo( EStartupDIOperatorAnimStart );
-                    DoStartupShowOperatorAnimationL();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
-                    break;
-                default:
-                    __ASSERT_DEBUG( EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
         case EStartupShowingOperatorAnimation:
             {
             switch( toState )
                 {
-                case EStartupShowingUserWelcomeNote:
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-                    iUserWelcomeNote = CStartupUserWelcomeNote::NewL( *this, ClientRect());
-                    AddToStackL( iUserWelcomeNote );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                    iInternalState = EStartupShowingUserWelcomeNote;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingUserWelcomeNote");
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-                    iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeNoteStart );
-                    iUserWelcomeNote->SetUserWelcomeNoteShowing(ETrue);
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-                    DoStartupShowUserWelcomeNoteL();
-                    break;
+                
+                 
                 case EStartupFirstBootAndRTCCheck:
                     iInternalState = EStartupFirstBootAndRTCCheck;
                     TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupFirstBootAndRTCCheck");
@@ -2594,48 +1238,11 @@
                 }
             }
             break;
-        case EStartupShowingUserWelcomeNote:
-            {
-            switch( toState )
-                {
-                case EStartupFirstBootAndRTCCheck:
-                    iInternalState = EStartupFirstBootAndRTCCheck;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupFirstBootAndRTCCheck");
-                    DoStartupFirstBootAndRTCCheckL();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
-                    break;
-                default:
-                    __ASSERT_DEBUG( EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
+      
         case EStartupFirstBootAndRTCCheck:
             {
             switch( toState )
                 {
-                case EStartupWaitingCUIStartupReady:
-                    iInternalState = EStartupWaitingCUIStartupReady;
-                    TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIStartupReady");
-                    WaitingCoverUIStartupReadySyncL();
-                    break;
-                case EStartupSystemFatalError:
-                    SystemFatalErrorL();
-                    break;
-                default:
-                    __ASSERT_DEBUG( EFalse,
-                        PANIC( EStartupInvalidInternalStateChange ) );
-                    break;
-                }
-            }
-            break;
-        case EStartupWaitingCUIStartupReady:
-            {
-            switch( toState )
-                {
                 case EStartupStartupOK:
                     iInternalState = EStartupStartupOK;
                     TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupStartupOK");
@@ -2659,7 +1266,6 @@
                 case EStartupOfflineModeQuery:
                 case EStartupShowingWelcomeAnimation:
                 case EStartupShowingOperatorAnimation:
-                case EStartupShowingUserWelcomeNote:
                 case EStartupFirstBootAndRTCCheck:
                 case EStartupWaitingCUIStartupReady:
                 case EStartupStartupOK:
@@ -2715,7 +1321,7 @@
     return ret_val;
     }
 
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 // ---------------------------------------------------------------------------
 // CStartupAppUi::UpdateStartupUiPhase()
 // ---------------------------------------------------------------------------
@@ -2730,5 +1336,5 @@
         TRACES1("CStartupAppUi::UpdateStartupUiPhase(): KPSStartupUiPhase set err %d", err);
         }                          
     }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
 // End of file
--- a/startupservices/Startup/src/StartupApplication.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/src/StartupApplication.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -21,6 +21,12 @@
 // INCLUDE FILES
 #include "StartupApplication.h"
 #include "StartupDocument.h"
+#include "startupappprivatepskeys.h"
+#include <e32property.h>
+
+//Security policies
+_LIT_SECURITY_POLICY_C1(KReadDeviceDataPolicy, ECapabilityReadDeviceData);
+_LIT_SECURITY_POLICY_C1(KWriteDeviceDataPolicy, ECapabilityWriteDeviceData);
 
 // ========================= MEMBER FUNCTIONS ================================
 
@@ -53,6 +59,12 @@
 
 GLDEF_C TInt E32Main()
     {
+    //Make sure startup app is only started once
+    TInt ret = RProperty::Define(KPSUidStartupApp, KPSStartupAppStarted, RProperty::EInt, KReadDeviceDataPolicy, KWriteDeviceDataPolicy);
+    if(ret!=KErrNone)
+        {
+        return KErrNone;
+        }
     return EikStart::RunApplication(NewApplication);
     }
 
--- a/startupservices/Startup/src/StartupMediatorObserver.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of CStartupMediatorObserver class
-*
-*/
-
-
-#include <MediatorDomainUIDs.h>
-
-#include "StartupMediatorObserver.h"
-#include "StartupAppUi.h"
-#include "startupdomainpskeys.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ----------------------------------------------------
-// CStartupMediatorObserver::ConstructL()
-// ----------------------------------------------------
-void CStartupMediatorObserver::ConstructL()
-    {
-    TRACES("CStartupMediatorObserver::ConstructL()");
-
-    TRACES("CStartupMediatorObserver::ConstructL(): iCommandInitiator");
-    iCommandInitiator = CMediatorCommandInitiator::NewL(this);
-
-    TRACES("CStartupMediatorObserver::ConstructL(): iEventProvider");
-    iEventProvider = CMediatorEventProvider::NewL();
-
-    TRACES("CStartupMediatorObserver::ConstructL(): Register event: EMsgWelcomeImageEvent ");
-    iEventProvider->RegisterEvent( KMediatorSecondaryDisplayDomain,
-                                   SecondaryDisplay::KCatStartup,
-                                   SecondaryDisplay::EMsgWelcomeImageEvent,
-                                   TVersion(0,0,0),
-                                   ECapabilitySwEvent );
-
-    TRACES("CStartupMediatorObserver::ConstructL(): Register event: EMsgStartupEvent ");
-    iEventProvider->RegisterEvent( KMediatorSecondaryDisplayDomain,
-                                   SecondaryDisplay::KCatStartup,
-                                   SecondaryDisplay::EMsgStartupEvent,
-                                   TVersion(0,0,0),
-                                   ECapabilitySwEvent );
-
-    TRACES("CStartupMediatorObserver::ConstructL(): End");
-    }
-
-// ----------------------------------------------------
-// CStartupMediatorObserver::NewL( CStartupAppUi* aStartupAppUi )
-// ----------------------------------------------------
-CStartupMediatorObserver* CStartupMediatorObserver::NewL( CStartupAppUi* aStartupAppUi )
-    {
-    TRACES("CStartupMediatorObserver::NewL()");
-    CStartupMediatorObserver* self = new (ELeave) CStartupMediatorObserver( aStartupAppUi );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(); // self
-
-    TRACES("CStartupMediatorObserver::NewL(): End");
-    return self;
-    }
-
-// ----------------------------------------------------
-// CStartupMediatorObserver::CStartupMediatorObserver( CStartupAppUi* aStartupAppUi )
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ----------------------------------------------------
-CStartupMediatorObserver::CStartupMediatorObserver( CStartupAppUi* aStartupAppUi ) :
-    iStartupAppUi( aStartupAppUi ),
-    iSyncData( NULL )
-    {
-    TRACES("CStartupMediatorObserver::CStartupMediatorObserver()");
-    }
-
-// ----------------------------------------------------
-// CStartupMediatorObserver::~CStartupMediatorObserver()
-// ----------------------------------------------------
-CStartupMediatorObserver::~CStartupMediatorObserver()
-    {
-    TRACES("CStartupMediatorObserver::~CStartupMediatorObserver()");
-    delete iCommandInitiator;
-    delete iEventProvider;
-    TRACES("CStartupMediatorObserver::~CStartupMediatorObserver(): End");
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-void CStartupMediatorObserver::IssueCommand(TInt aCommandId, TInt aData)
-    {
-    TRACES("CStartupMediatorObserver::IssueCommand()");
-    TRACES1("CStartupMediatorObserver::IssueCommand(): aCommandId %d", aCommandId);
-    TRACES1("CStartupMediatorObserver::IssueCommand(): aData:     %d", aData);
-    if (aCommandId == SecondaryDisplay::ECmdStartupSync)
-        {
-        iSyncData = aData;
-        }
-
-    TPckgBuf<TInt> data( aData );
-    iCommandInitiator->IssueCommand( KMediatorSecondaryDisplayDomain,
-                                     SecondaryDisplay::KCatStartup,
-                                     aCommandId,
-                                     TVersion(0,0,0),
-                                     data);
-
-    TRACES("CStartupMediatorObserver::IssueCommand(): End");
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-void CStartupMediatorObserver::CommandResponseL( TUid /*aDomain*/,
-                                                 TUid /*aCategory*/,
-                                                 TInt aCommandId,
-                                                 TInt /*aStatus*/,
-                                                 const TDesC8& /*aData*/ )
-    {
-    TRACES("CStartupMediatorObserver::CommandResponseL()");
-    if (aCommandId == SecondaryDisplay::ECmdStartupSync)
-        {
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-        if ( iSyncData == SecondaryDisplay::EStartWelcomeAnimation )
-            {
-            TRACES("CStartupMediatorObserver::CommandResponseL(): EStartWelcomeAnimation");
-            iStartupAppUi->CoverUIWelcomeAnimationSyncOKL();
-            }
-        else if ( iSyncData == SecondaryDisplay::EStartOperatorAnimation )
-            {
-            TRACES("CStartupMediatorObserver::CommandResponseL(): EStartOperatorAnimation");
-            iStartupAppUi->CoverUIOperatorAnimationSyncOKL();
-            }
-        else
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-        if ( iSyncData == SecondaryDisplay::EStartStartupReady )
-            {
-            TRACES("CStartupMediatorObserver::CommandResponseL(): EStartStartupReady");
-            iStartupAppUi->CoverUIStartupReadySyncOKL();
-            }
-        else
-            {
-            TRACES("CStartupMediatorObserver::CommandResponseL(): Unsupported command");
-            }
-        }
-
-    TRACES("CStartupMediatorObserver::CommandResponseL(): End");
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-void CStartupMediatorObserver::RaiseEvent( TUid aCategory,
-                                           TInt aEventId,
-                                           const TDesC8& aData )
-    {
-    TRACES("CStartupMediatorObserver::RaiseEvent()");
-    TRACES1("CStartupMediatorObserver::RaiseEvent(): domain  :%d", KMediatorSecondaryDisplayDomain);
-    TRACES1("CStartupMediatorObserver::RaiseEvent(): category:%d", aCategory);
-    TRACES1("CStartupMediatorObserver::RaiseEvent(): event id:%d", aEventId);
-    TRACES1("CStartupMediatorObserver::RaiseEvent(): data    :%S", &aData);
-    TInt err = iEventProvider->RaiseEvent( KMediatorSecondaryDisplayDomain,
-                                           aCategory,
-                                           aEventId,
-                                           TVersion(0,0,0),
-                                           aData );
-    if ( err != KErrNone )
-        {
-        TRACES1("CStartupMediatorObserver::RaiseEvent(): Error raising event: err = d", err);
-        }
-    TRACES("CStartupMediatorObserver::RaiseEvent(): End");
-    }
-
-//  End of File
--- a/startupservices/Startup/src/StartupOperatorAnimation.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*     This class is the container class of the CStartupOperatorAnimation.
-*     Is used to show operator animation.
-*
-*/
-
-
-// INCLUDE FILES
-#include <aknappui.h>
-#include <aknnotewrappers.h>
-#include <barsread.h> //use of TResourceReader
-#include <aknbitmapanimation.h>
-#include "StartupOperatorAnimation.h"
-#include <Startup.rsg>
-#include "StartupDefines.h"
-#include "Startup.hrh"
-#include "StartupAppUi.h"
-#include <operatoranimation.rsg>
-#include <ConeResLoader.h>
-
-// CONSTANTS
-
-// Path to operator variated animation
-_LIT( KOperatorAnimationResource, "z:operatoranimation.rsc" );
-
-//Constants used in OfferKeyEventL
-const TInt KTimerDelay( 10000);
-const TInt KTimerInterval( 10000);
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CStartupOperatorAnimation::ConstructL(const TRect& aRect)
-// Symbian 2nd phase constructor can leave.
-// Need different ConstructL from base class CStartupWelcomeAnimation
-// because different animation file and time are loaded.
-// ---------------------------------------------------------------------------
-void CStartupOperatorAnimation::ConstructL(const TRect& /*aRect*/)
-    {
-    TRACES("CStartupOperatorAnimation::ConstructL()");
-    UpdateDrawInfo( EStartupDIStart );
-    CreateWindowL();
-    iAnimCancelTimer = CPeriodic::NewL( EPriorityNormal );
-
-    TRACES("CStartupOperatorAnimation::ConstructL(): Animation loading started");
-    iAnim = CAknBitmapAnimation::NewL();
-    iAnim->ExcludeAnimationFramesFromCache();
-    iAnim->SetContainerWindowL( *this );
-    iAnim->SetScaleModeForAnimationFrames(EAspectRatioPreservedAndUnusedSpaceRemoved);
-    TResourceReader rr;
-    RConeResourceLoader loader( *CEikonEnv::Static() );
-
-    TParse* fp = new(ELeave) TParse(); 
-    fp->Set(KOperatorAnimationResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TRACES1("CStartupOperatorAnimation::ConstructL(): Operator animation resource path: '%S'", &fp->FullName());
-    TFileName name( fp->FullName() );
-    delete fp;
-
-    TInt fileError = loader.Open( name );
-    if ( fileError == KErrNone )
-        {
-        CleanupClosePushL( loader );
-        iCoeEnv->CreateResourceReaderLC(rr, R_OPERATOR_IMAGE);
-        TRAPD(err, iAnim->ConstructFromResourceL( rr ));
-        TRACES1("CStartupOperatorAnimation::ConstructL(): Operator animation: err = %d", err);
-        if( err == KErrNone )
-            {
-            TResourceReader timeReader;
-            iCoeEnv->CreateResourceReaderLC(timeReader, R_ANIM_DURATION);
-            iShowingTime = timeReader.ReadInt16();
-            TRACES1("CStartupOperatorAnimation::ConstructL(): Operator animation showing time: %d", iShowingTime );
-            CleanupStack::PopAndDestroy(); // pop timeReader
-            }
-        else
-            {
-            iShowingTime = 0;
-            TRACES("CStartupOperatorAnimation::ConstructL(): Animation loading failed");
-            }
-        CleanupStack::PopAndDestroy(); //pop rr
-        TRACES("CStartupOperatorAnimation::ConstructL(): Animation loading ended");
-        CleanupStack::PopAndDestroy(); //pop loader
-        }
-    else
-        {
-        TRACES("CStartupOperatorAnimation::ConstructL(): Resource file loading failed");
-        }
-
-    
-    SetRect(iAvkonAppUi->ApplicationRect());
-    iAnim->SetPosition( TPoint( (iAvkonAppUi->ApplicationRect().Width()/2) - (iAnim->BitmapAnimData()->Size().iWidth/2), 
-                                (iAvkonAppUi->ApplicationRect().Height()/2) - (iAnim->BitmapAnimData()->Size().iHeight/2) ) );
-    ActivateL();
-
-    TRACES("CStartupOperatorAnimation::ConstructL(): End");
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupOperatorAnimation::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CStartupOperatorAnimation* CStartupOperatorAnimation::NewL( CStartupAppUi* aStartupAppUi,
-                                                            const TRect& aRect)
-    {
-    TRACES("CStartupOperatorAnimation::NewL()");
-    CStartupOperatorAnimation* self = new (ELeave) CStartupOperatorAnimation( aStartupAppUi );
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect);
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CStartupOperatorAnimation::CStartupOperatorAnimation()
-// ---------------------------------------------------------
-CStartupOperatorAnimation::CStartupOperatorAnimation( CStartupAppUi* aStartupAppUi ) : 
-    CStartupWelcomeAnimation(aStartupAppUi)
-    { 
-    TRACES("CStartupOperatorAnimation::CStartupOperatorAnimation()");
-    iShowingTime = 0;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupOperatorAnimation::OfferKeyEventL(...)
-// ---------------------------------------------------------------------------
-TKeyResponse CStartupOperatorAnimation::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
-    {
-    TRACES("CStartupWelcomeAnimation::OfferKeyEventL()");
-    if( iAnimationShowing && !iStartupAppUi->HiddenReset() && !iAnimationCancelled )
-        {
-        // Cancel animation
-        UpdateDrawInfo( EStartupDIOperatorAnimCancelled );
-        EndAnimation();
-        TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): Timer activated - before");
-        iAnimCancelTimer->Start( KTimerDelay, KTimerInterval,
-            TCallBack( iStartupAppUi->DoStopTimingL, iStartupAppUi ) );
-        TRACES("CStartupOperatorAnimation::OfferKeyEventL(): Timer activated - after");
-        iAnimationCancelled = ETrue;
-        }
-    else if( !iAnimationShowing && iStartupAppUi->OperatorTonePlaying())
-        {
-        TRACES("CStartupOperatorAnimation::OfferKeyEventL() Animation has completed but tone is still playing. Stop it.");
-        iStartupAppUi->StopOperatorTone();
-        }
-
-    TRACES("CStartupOperatorAnimation::OfferKeyEventL(): End");
-    return EKeyWasConsumed;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupOperatorAnimation::DoDrawing()
-// ---------------------------------------------------------------------------
-void CStartupOperatorAnimation::DoDrawing() const
-    {
-//    These are the cases handled in this function
-//    EStartupDIOperatorAnimStart,
-//    EStartupDIOperatorAnimCancelled,
-//    EStartupDIOperatorAnimEnd
-//    EStartupDISystemFatalError
-    TRACES("CStartupOperatorAnimation::DoDrawing()");
-    TRACES1("CStartupOperatorAnimation::DoDrawing():  %d ", iDrawUpdateInfo );
-    switch ( iDrawUpdateInfo )
-        {
-
-        case EStartupDIOperatorAnimStart:
-            {
-            TRACES("CStartupOperatorAnimation::DoDrawing(): EStartupDIOperatorAnimStart");
-            }
-            break;
-        case EStartupDIOperatorAnimCancelled:
-            {
-            TRACES("CStartupOperatorAnimation::DoDrawing(): EStartupDIOperatorAnimCancelled");
-            EndAnimation();
-            TRAPD(err,iStartupAppUi->StopTimingL());
-            if (err != KErrNone)
-                {
-                TRACES1("CStartupOperatorAnimation::DoDrawing(): StopTimingL() leaves, err = %d", err );
-                }
-            }
-            break;
-        case EStartupDIOperatorAnimEnd:
-            {
-            TRACES("CStartupOperatorAnimation::DoDrawing(): EStartupDIOperatorAnimEnd");
-            }
-            break;
-        case EStartupDISystemFatalError:
-            {
-            }
-            break;
-        default:
-            break;
-        }
-    }
--- a/startupservices/Startup/src/StartupPopupList.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  This class implements a customized pop-up 
-*                which disables LSK if no city/country match is there
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "StartupPopupList.h"
-#include <aknsfld.h>
-#include "StartupDefines.h"
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::CStartupPopupList()
-// 
-// ---------------------------------------------------------------------------
-CStartupPopupList::CStartupPopupList()
-    {   
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::~CStartupPopupList()
-// ---------------------------------------------------------------------------
-//
-CStartupPopupList::~CStartupPopupList()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::NewL()
-// ---------------------------------------------------------------------------
-//
-CStartupPopupList* CStartupPopupList::NewL(
-                                    CAknSinglePopupMenuStyleListBox* aListBox, 
-                                    TInt aCbaResource,
-                                    AknPopupLayouts::TAknPopupLayouts aType)
-    {
-    TRACES("CStartupPopupList::NewL()");
-    CStartupPopupList* self = new(ELeave)CStartupPopupList();        
-    CleanupStack::PushL(self);
-    self->ConstructL(aListBox, aCbaResource, aType);
-    CleanupStack::Pop(); // self
-    TRACES("CStartupPopupList::NewL(): End");
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::ConstructL()
-// Symbian OS second phase constructor 
-// ---------------------------------------------------------------------------
-//
- void CStartupPopupList::ConstructL(CAknSinglePopupMenuStyleListBox* aListBox, 
-                                    TInt aCbaResource,
-                                    AknPopupLayouts::TAknPopupLayouts aType)
-    {
-    TRACES("CStartupPopupList::ConstructL()");
-    CAknPopupList::ConstructL(aListBox, aCbaResource,aType);
-    TRACES("CStartupPopupList::ConstructL(): End");
-    }
-
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::ListBoxItemsChanged()
-// Handle the ListBox Change Event and Disable "Select" & "MSK" CBA Buttons
-// ---------------------------------------------------------------------------
-//
-void CStartupPopupList::ListBoxItemsChanged(CEikListBox* aListBox)
-    {
-    TRACES("CStartupPopupList::ListBoxItemsChanged()");
-    // get the CBA button group container
-    CEikButtonGroupContainer* cbaContainer = ButtonGroupContainer();
-    // check if there's no match of items
-    if( !aListBox->Model()->NumberOfItems() )
-        {
-        // Disable the 'Select' button 
-        cbaContainer->MakeCommandVisible(EAknSoftkeySelect,EFalse);
-        // Disable the 'Middle softkey' button
-        cbaContainer->MakeCommandVisibleByPosition(
-                      CEikButtonGroupContainer::EMiddleSoftkeyPosition,EFalse);
-        }
-    // check if 'Select' is disabled
-    else if(!cbaContainer->IsCommandVisible(EAknSoftkeySelect)) 
-        {
-        // Enable the 'Select' button if disabled
-        cbaContainer->MakeCommandVisible(EAknSoftkeySelect,ETrue);
-        // Enable the 'Middle softkey' button if disabled
-        cbaContainer->MakeCommandVisibleByPosition(
-                      CEikButtonGroupContainer::EMiddleSoftkeyPosition,ETrue);
-        }
-    TRACES("CStartupPopupList::ListBoxItemsChanged(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::ActivateL()
-// Activate the View and add the ListBox Observer
-// ---------------------------------------------------------------------------
-//
-void CStartupPopupList::ActivateL()
-    {
-    TRACES("CStartupPopupList::ActivateL()");
-    // call Base class ActivateL()
-    CAknPopupList::ActivateL();
-    // add the listbox item change observer
-    ListBox()->AddItemChangeObserverL(this);
-    TRACES("CStartupPopupList::ActivateL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupPopupList::HandlePointerEventL()
-// ---------------------------------------------------------------------------
-//
-void CStartupPopupList::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    TRACES("CStartupPopupList::HandlePointerEventL()");
-    TRACES1("CStartupPopupList::HandlePointerEventL: aPointerEvent.iType == %d",aPointerEvent.iType );
-    
-    /* Handle all taps except when EButton1Down outside of country/city query 
-       -> query is not cancelled and scroll bar does not remain pressed down */
-    if ( Rect().Contains( aPointerEvent.iPosition ) || ( !Rect().Contains( aPointerEvent.iPosition ) &&
-         aPointerEvent.iType != TPointerEvent::EButton1Down ) )
-        {
-        CAknPopupList::HandlePointerEventL( aPointerEvent );
-        }
-    
-    TRACES("CStartupPopupList::HandlePointerEventL(): End");
-    }
-
-// End of File
--- a/startupservices/Startup/src/StartupQueryDialog.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*           This class adds send-key to acknowledge the time/date query.
-*           Feature is implemented to needs of the PET-chamber in production tests.
-*           More information can be found in Change Request-database.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "StartupQueryDialog.h"
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// -----------------------------------------------------------------------------
-// CStartupQueryDialog::CStartupQueryDialog
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CStartupQueryDialog::CStartupQueryDialog( TTime& aTime, const TTone aTone ) :
-    CAknTimeQueryDialog( aTime, aTone )
-    {
-    }
-
-// Destructor
-CStartupQueryDialog::~CStartupQueryDialog()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupQueryDialog::OfferKeyEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CStartupQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
-                                                            TEventCode aType)
-    {
-    if( aType != EEventKey )
-        return EKeyWasNotConsumed;
-
-    if( NeedToDismissQueryL( aKeyEvent ) )
-            return EKeyWasConsumed;
-    return CAknDialog::OfferKeyEventL(aKeyEvent,aType);
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupQueryDialog::NeedToDismissQueryL
-// Allows user to acknowledge time and date queries with the send key.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CStartupQueryDialog::NeedToDismissQueryL(const TKeyEvent& aKeyEvent)
-    {
-    if (aKeyEvent.iCode == EKeyPhoneSend)
-        {
-        DismissQueryL();
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupQueryDialog::DismissQueryL
-// Query is accepted if the left softkey is displayed 
-// (left softkey is displayed only if there is valid data in the query).
-// Query is discarded if the left softkey is not displayed.
-// Clients can override this and implement something different.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CStartupQueryDialog::DismissQueryL()
-    {
-    if (IsLeftSoftkeyVisible())
-        {
-        TryExitL(EEikBidOk);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupQueryDialog::IsLeftSoftkeyVisible
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CStartupQueryDialog::IsLeftSoftkeyVisible()
-    {
-    return ButtonGroupContainer().ButtonGroup()->IsCommandVisible(
-                      ButtonGroupContainer().ButtonGroup()->CommandId(0));
-    }
-
-// End of file
--- a/startupservices/Startup/src/StartupTone.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*     This class is the container class of the CStartupTone.
-*     Is used to play startup tone.
-*
-*/
-
-
-// INCLUDE FILES
-#include <Profile.hrh>
-#include <centralrepository.h>
-#include <StartupDomainCRKeys.h>
-#include <ProfileEngineSDKCRKeys.h>
-#include "StartupTone.h"
-#include "StartupAppUi.h"
-#include "AudioPreference.h"
-
-#define MIN_VOLUME 0
-#define MAX_VOLUME 10
-
-//=============================== MEMBER FUNCTIONS ============================
-// ---------------------------------------------------------
-// Constructor & destructor
-// EPOC two phased constructor
-// ---------------------------------------------------------
-//
-CStartupTone::CStartupTone( CStartupAppUi* aStartupAppUi ) :
-    iTone( NULL ),
-    iAudioReady( EFalse ),
-    iPlaying( EFalse ),
-    iStartupAppUi( aStartupAppUi ),
-    iHiddenReset (EFalse ),
-    iStartupWaitingForTone ( EFalse )
-    {
-    }
-
-CStartupTone::~CStartupTone()
-    {
-    TRACES("CStartupTone::~CStartupTone()");
-
-    if (iTone)
-        {
-        if (iPlaying)
-            {
-            TRACES("CStartupTone::~CStartupTone(): Still playing. Stop it!");
-            iTone->Stop();
-            }
-        delete iTone;
-        iTone = NULL;
-        TRACES("CStartupTone::~CStartupTone(): iTone deleted");
-        }
-    TRACES("CStartupTone::~CStartupTone(): End");
-    }
-
-// ----------------------------------------------------
-// CStartupTone::NewL( CStartupAppUi* aStartupAppUi )
-// ----------------------------------------------------
-CStartupTone* CStartupTone::NewL( CStartupAppUi* aStartupAppUi, TToneType aToneType )
-    {
-    TRACES("CStartupTone::NewL()");
-    CStartupTone* self = new (ELeave) CStartupTone( aStartupAppUi );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL(aToneType);
-    CleanupStack::Pop(); // self
-
-    TRACES("CStartupTone::NewL(): End");
-    return self;
-    }
-
-void CStartupTone::ConstructL(TToneType aToneType)
-    {
-    TRACES("CStartupTone::ConstructL()");
-    // Check tone volume
-    iVolume = GetRingingToneVolumeL();
-    // Check if hidden reset
-    iHiddenReset = iStartupAppUi->HiddenReset();
-
-    iToneType = aToneType;
-
-    if ((!iHiddenReset) && (iVolume))
-        {
-        TPath tonePath;
-        TRACES("CStartupTone::ConstructL(): Get tone path from CenRep");
-
-        CRepository* repository(NULL);
-
-        TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
-        if ( err != KErrNone )
-            {
-            TRACES("CStartupTone::ConstructL(): End, ERROR: Failed to get startup tone path");
-            return;
-            }
-        if (iToneType == EStartupTone)
-            {
-            TRACES("CStartupTone::ConstructL(): Tone type EStartupTone");
-            err = repository->Get( KStartupTonePath, tonePath );
-            }
-        else
-            {
-            TRACES("CStartupTone::ConstructL(): Tone type EStartupOpTone");
-            err = repository->Get( KStartupOperatorTonePath, tonePath );
-            }
-        delete repository;
-
-        TRACES2("CStartupTone::ConstructL(): Get tone to play. err = %d, Path = '%S'", err, &tonePath );
-
-        RFs fs;
-        err = fs.Connect();
-        TFindFile findExe(fs);
-        err = findExe.FindByPath( tonePath, NULL );
-        fs.Close();
-        if (err != KErrNone)
-            {
-            TRACES1("CStartupTone::ConstructL(): Tone to play: Cannot find tone. err = %d", err);
-            }
-        else
-            {
-            TRACES("CStartupTone::ConstructL(): Tone found");
-            iTone = CMdaAudioPlayerUtility::NewFilePlayerL(
-                        tonePath, 
-                        *this, KAudioPriorityPhonePower, 
-                        TMdaPriorityPreference( KAudioPrefDefaultTone));
-            }
-        }
-    }
-// ---------------------------------------------------------
-// void CStartupTone::Play()
-// ---------------------------------------------------------
-//
-
-TInt CStartupTone::Play()
-    {
-    TRACES("CStartupTone::Play()");
-    TRACES1("CStartupTone::Play(): Tone type: %d", iToneType);
-    if (iAudioReady && !iHiddenReset && iVolume && iTone)
-        {
-        TRACES("CStartupTone::Play(): Audio ready. Play tone");
-        iVolume = Max( MIN_VOLUME, Min( iVolume, MAX_VOLUME ) );
-        iTone->SetVolume(iVolume);
-        iTone->Play();
-        iPlaying = ETrue;
-        TRACES("CStartupTone::Play(): End, return KErrNone");
-        return KErrNone;
-        }
-    else
-        {
-        TRACES("CStartupTone::Play(): Audio not ready, hidden reset, volume null or tone is not initialized. Unable to play tone.");
-        TRACES1("CStartupTone::Play(): Audio ready:  %d",iAudioReady);
-        TRACES1("CStartupTone::Play(): Hidden reset: %d",iHiddenReset);
-        TRACES1("CStartupTone::Play(): Volume:       %d",iVolume);
-        TRACES1("CStartupTone::Play(): Tone:         %d",iTone);
-        TRACES("CStartupTone::Play(): End, return KErrNotReady");
-        return KErrNotReady;
-        }
-    }
-
-// ---------------------------------------------------------
-// void CStartupTone::Stop()
-// ---------------------------------------------------------
-//
-
-void CStartupTone::Stop()
-    {
-    TRACES("CStartupTone::Stop()");
-    if (iTone)
-        {
-        TRACES("CStartupTone::Stop(): Stop the tone");
-        iPlaying=EFalse;
-        iTone->Stop();
-        iToneType = EStartupNoTone;
-        MapcPlayComplete(KErrNone);
-        }
-    TRACES("CStartupTone::Stop(): End");
-    }
-
-// ---------------------------------------------------------
-// CStartupTone::ToneFound()
-// ---------------------------------------------------------
-//
-TBool CStartupTone::ToneFound()
-    {
-    TBool status(EFalse);
-    if(iTone)
-        status = ETrue;
-    return status;
-    }
-
-// ---------------------------------------------------------
-// CStartupTone::AudioReady()
-// ---------------------------------------------------------
-//
-TBool CStartupTone::AudioReady()
-    {
-    return iAudioReady;
-    }
-
-// ---------------------------------------------------------
-// void CStartupTone::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
-// ---------------------------------------------------------
-//
-void CStartupTone::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
-    {
-    TRACES("CStartupTone::MapcInitComplete()");
-    if (aError == KErrNone)
-        {
-        TRACES("CStartupTone::MapcInitComplete(): Ready to play startup tone");
-        iAudioReady = ETrue;
-        }
-    else
-        {
-        TRACES("CStartupTone::MapcInitComplete(): Unable to play startup tone");
-        }
-    TRACES("CStartupTone::MapcInitComplete(): End");
-    }
-
-// ---------------------------------------------------------
-// void CStartupTone::MapcPlayComplete(TInt /*aError*/)
-// ---------------------------------------------------------
-//
-void CStartupTone::MapcPlayComplete(TInt /*aError*/)
-    {
-    TRACES("StartupTone::MapcPlayComplete()");
-    iPlaying=EFalse;
-    if (iStartupWaitingForTone)
-        {
-        TRACES("StartupTone::MapcPlayComplete(): Startup waiting ");
-        TRAPD(err, iStartupAppUi->ContinueStartupAfterToneL(iToneType));
-        if (err != KErrNone)
-            {
-            TRACES1("CStartupTone::MapcPlayComplete(): ContinueStartupAfterToneL() leaves, err = %d", err );
-            }
-        }
-    TRACES("StartupTone::MapcPlayComplete(): End");
-    }
-
-// ---------------------------------------------------------
-// TBool CStartupTone::Playing()
-// ---------------------------------------------------------
-//
-TBool CStartupTone::Playing()
-    {
-    TRACES1("StartupTone::Playing(): Return %d", iPlaying );
-    return iPlaying;
-    }
-
-// ---------------------------------------------------------
-// void CStartupTone::StartupWaiting()
-// ---------------------------------------------------------
-//
-void CStartupTone::StartupWaiting(TBool aValue)
-    {
-    TRACES1("StartupTone::StartupWaiting(): aValue == %d", aValue);
-    iStartupWaitingForTone = aValue;
-    }
-
-// ----------------------------------------------------------
-// CStartupTone::GetRingingToneVolumeL
-// Startup tone volume is always 4 but when ringing type is 
-// silent or ringing volume is 0 or 1 startup tone is silent.
-// ----------------------------------------------------------
-//
-TInt CStartupTone::GetRingingToneVolumeL()
-    {
-    TRACES("StartupTone::GetRingingToneVolumeL()");
-
-    TInt retval(0);
-    TInt ringingType(EProfileRingingTypeSilent);
-    TInt ringingVol(0);
-    
-    CRepository* repository(NULL);
-
-    TRAPD( err, repository = CRepository::NewL( KCRUidProfileEngine ) );
-    if ( err != KErrNone )
-        {
-        TRACES("StartupTone::GetRingingToneVolumeL(): End, ERROR, Cannot connect to CenRep");
-        return 0;    
-        }
-
-    User::LeaveIfError( repository->Get( KProEngActiveRingingVolume, ringingVol ));
-    User::LeaveIfError( repository->Get( KProEngActiveRingingType, ringingType ));
-    delete repository;
-
-    TRACES1("StartupTone::GetRingingToneVolumeL(): Ringing tone volume = %d", ringingVol);
-    TRACES1("StartupTone::GetRingingToneVolumeL(): Ringing type = %d", ringingType);
-
-    if ((ringingType != EProfileRingingTypeSilent) && 
-        (ringingVol != 0) &&
-        (ringingVol != EProfileRingingVolumeLevel1))
-        {
-        TRACES("StartupTone::GetRingingToneVolumeL(): Get startup tone volume");
-        TInt defaultRingingVol;
-        CRepository* repository(NULL);
-
-        TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
-        if ( err != KErrNone )
-            {
-            return 0;    
-            }
-
-        User::LeaveIfError( repository->Get( KStartupToneVolume, defaultRingingVol ));
-        delete repository;
-
-        ringingVol = defaultRingingVol;
-        retval =  ringingVol;
-        }
-
-    TRACES1("StartupTone::GetRingingToneVolumeL(): End, return %d", retval);
-    return retval;
-    }
-
-// End of File
--- a/startupservices/Startup/src/StartupUserWelcomeNote.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,587 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*     This class is the container class of the CStartupUerWelcomeNote.
-*     Is user for showing user selected picture, text or predefined animation.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknappui.h>
-#include <coemain.h>
-#include <aknnotewrappers.h>
-#include <AknGlobalNote.h>
-#include <barsread.h> //use of TResourceReader
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-#include "startupview.h"
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-#include <StarterClient.h>     //used for RemoveSplashScreen
-#include <startup.mbg>
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-#include <e32const.h>
-#include "StartupUserWelcomeNote.h"
-#include <startup.rsg>
-#include <centralrepository.h>
-#include <startupdomaincrkeys.h>
-#include "StartupDefines.h"
-#include "startup.hrh"
-#include "StartupAppUi.h"
-#include "aknSDData.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CStartupUseWelcomeNote::ConstructL
-//
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::ConstructL( const TRect& /*aRect*/ )
-    {
-    TRACES("CStartupUserWelcomeNote::ConstructL()");
-
-    iAvkonAppUi->StatusPane()->MakeVisible( EFalse );
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    SetContainerWindowL( iView );
-    iView.SetComponent( *this );
-
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    CreateWindowL();
-    iNoteCancelTimer = CPeriodic::NewL( EPriorityNormal );
-
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    iBitmap = new(ELeave) CFbsBitmap();
-
-    //get user selected userwelcomenotetype from Central Repository
-    TInt err = GetUserWelcomeNoteTypeInfo();
-
-    if( err != KErrNone )
-        {
-        TRACES("CStartupUserWelcomeNote::ConstructL(): Show default note");
-        //in error case default uwn (no note) is shown
-        iNoteType = EDefaultWelcomeNote;
-        iNoteDefaultVariationType = EStartupUWNDefaultNoNote;
-        }
-    //Do some preparations for showing user welcome note later
-    //This makes the starting to show much more quicker
-    switch ( iNoteType )
-        {
-        case ETextWelcomeNote:
-            {
-            TRACES("CStartupUserWelcomeNote::ConstructL(): iNoteType == ETextWelcomeNote");
-            }
-            break;
-        case EImageWelcomeNote:
-            {
-            TRACES("CStartupUserWelcomeNote::ConstructL(): iNoteType == EImageWelcomeNote");
-            TInt errorCode = iBitmap->Load( TPtrC(iNotePath.Ptr()) );
-            TRACES1("CStartupUserWelcomeNote::ConstructL(): Load returned %d", errorCode);
-            if(iStartupAppUi.CoverUISupported())
-                {
-                SecondaryDisplay::TWelcomeImage data(TPtrC(iNotePath.Ptr()));
-                SecondaryDisplay::TWelcomeImagePckg Pckg( data );
-                iStartupAppUi.RaiseCoverUIEvent( SecondaryDisplay::KCatStartup,
-                                                 SecondaryDisplay::EMsgWelcomeImageEvent,
-                                                 Pckg);
-                }
-            }
-            break;
-        default:
-            {
-            TRACES("CStartupUserWelcomeNote::ConstructL(): iNoteType == EDefaultWelcomeNote");
-            switch ( iNoteDefaultVariationType )
-                {
-                case EStartupUWNDefaultOperatorGraphic:
-                    {
-                    TRACES("CStartupUserWelcomeNote::ConstructL(): iNoteDefaultVariationType == EStartupUWNDefaultOperatorGraphic");
-                    iBitmap->Load( TPtrC(iNoteOperPath.Ptr()) );
-                    if(iStartupAppUi.CoverUISupported())
-                        {
-                        SecondaryDisplay::TWelcomeImage data(TPtrC(iNoteOperPath.Ptr()));
-                        SecondaryDisplay::TWelcomeImagePckg Pckg( data );
-                        iStartupAppUi.RaiseCoverUIEvent( SecondaryDisplay::KCatStartup,
-                                                         SecondaryDisplay::EMsgWelcomeImageEvent,
-                                                         Pckg);
-                        }
-                    }
-                    break;
-                case EStartupUWNDefaultOperatorText:
-                case EStartupUWNDefaultNoNote:
-                default:
-                    {
-                    //nothing preparation
-                    TRACES("CStartupUserWelcomeNote::ConstructL(): iNoteDefaultVariationType == EStartupUWNDefaultOperatorText or EStartupUWNDefaultNoNote");
-                    }
-                    break;
-                }
-            }
-            break;
-        }
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    //get information for draw-function
-    iWelcomeNoteType = NoteTypeInformation();
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    SetRect(iAvkonAppUi->ApplicationRect());
-    ActivateL();
-    TRACES("CStartupUserWelcomeNote::ConstructL(): End");
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupUserWelcomeNote::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CStartupUserWelcomeNote* CStartupUserWelcomeNote::NewL(
-    CStartupAppUi& aStartupAppUi,
-    const TRect& aRect
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  , CStartupView& aView
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    )
-    {
-    TRACES("CStartupUserWelcomeNote::NewL()");
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    CStartupUserWelcomeNote* self = new (ELeave) CStartupUserWelcomeNote( aStartupAppUi, aView );
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    CStartupUserWelcomeNote* self = new (ELeave) CStartupUserWelcomeNote( aStartupAppUi );
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect);
-    CleanupStack::Pop();
-    TRACES("CStartupUserWelcomeNote::NewL(): End");
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CStartupUserWelcomeNote::CStartupUserWelcomeNote()
-// ---------------------------------------------------------
-CStartupUserWelcomeNote::CStartupUserWelcomeNote( CStartupAppUi& aStartupAppUi
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  , CStartupView& aView
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
- ) :
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iView( aView ),
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iSplashScreenRemoved( EFalse ),
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iStartupAppUi( aStartupAppUi )
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-  , iUserWelcomeNoteShowing( EFalse ),
-    iUserWelcomeNoteCancelled( EFalse)
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    {
-    TRACES("CStartupUserWelcomeNote::CStartupUserWelcomeNote()");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUseWelcomeNote::StartL()
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::StartL()
-    {
-    TRACES("CStartupUserWelcomeNote::StartL()");
-    switch ( iNoteType )
-        {
-        case ETextWelcomeNote:
-            {
-            TRACES("CStartupUserWelcomeNote::StartL(): ETextWelcomeNote");
-            ShowInformationNoteWrapperL();
-            }
-            break;
-        case EImageWelcomeNote:
-            {
-            TRACES("CStartupUserWelcomeNote::StartL(): EImageWelcomeNote");
-            DrawImageWelcomeNote();
-            }
-            break;
-        default:
-            {
-            TRACES("CStartupUserWelcomeNote::StartL(): default");
-            switch ( iNoteDefaultVariationType )
-                {
-                case EStartupUWNDefaultOperatorGraphic:
-                    {
-                    TRACES("CStartupUserWelcomeNote::StartL(): EStartupUWNDefaultOperatorGraphic");
-                    DrawImageWelcomeNote();
-                    }
-                    break;
-                case EStartupUWNDefaultOperatorText:
-                    {
-                    TRACES("CStartupUserWelcomeNote::StartL(): EStartupUWNDefaultOperatorText");
-                    ShowInformationNoteWrapperL();
-                    }
-                    break;
-                case EStartupUWNDefaultNoNote:
-                default:
-                    TRACES("CStartupUserWelcomeNote::StartL(): EStartupUWNDefaultNoNote");
-                    break;
-                }
-            }
-            break;
-        }
-    ControlEnv()->WsSession().Flush(); // force draw of the context
-    TRACES("CStartupUserWelcomeNote::StartL(): End");
-    }
-
-// ---------------------------------------------------------
-// CStartupUserWelcomeNote::NoteTypeInformation()
-// ---------------------------------------------------------
-TStartupNoteTypeInformation CStartupUserWelcomeNote::NoteTypeInformation()
-    {
-    TRACES("CStartupUserWelcomeNote::NoteTypeInformation()");
-    if( iNoteType == EDefaultWelcomeNote && iNoteDefaultVariationType == EStartupUWNDefaultNoNote )
-        {
-        TRACES("CStartupUserWelcomeNote::NoteTypeInformation(): End, return EStartupNoNote");
-        return EStartupNoNote;
-        }
-    else if( ( iNoteType == ETextWelcomeNote ) ||
-             ( iNoteType == EDefaultWelcomeNote &&
-               iNoteDefaultVariationType == EStartupUWNDefaultOperatorText ) )
-        {
-        TRACES("CStartupUserWelcomeNote::NoteTypeInformation(): End, return EStartupText");
-        return EStartupText;
-        }
-    else if( ( iNoteType == EImageWelcomeNote ) ||
-                ( iNoteType == EDefaultWelcomeNote &&
-                  iNoteDefaultVariationType == EStartupUWNDefaultOperatorGraphic ) )
-        {
-        TRACES("CStartupUserWelcomeNote::NoteTypeInformation(): End, return EStartupImage");
-        return EStartupImage;
-        }
-    else
-        {
-        __ASSERT_DEBUG( EFalse, PANIC( EStartupNeverShouldBeHere ) );
-        return EStartupNoNote;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUseWelcomeNote::DrawImageWelcomeNote
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::DrawImageWelcomeNote()
-    {
-    TRACES("CStartupUserWelcomeNote::DrawImageWelcomeNote()");
-
-    CWindowGc& gc = SystemGc();
-    TInt xDelta=0; // for x coordinates
-    TInt yDelta=0; // for y coordinates
-    TSize bmpSizeInPixels = iBitmap->SizeInPixels();
-    //center image to the center of the screen
-    TRect rect = Rect();
-    xDelta=( rect.Width() - bmpSizeInPixels.iWidth ) / 2;
-    yDelta=( rect.Height() - bmpSizeInPixels.iHeight ) / 2;
-    TPoint pos = TPoint( xDelta , yDelta ); // displacement vector
-    ActivateGc();
-    Window().Invalidate( rect );
-    Window().BeginRedraw( rect );
-    gc.BitBlt( pos, iBitmap ); // CWindowGc member function
-    DrawUtils::ClearBetweenRects(gc, Rect(), TRect(pos,bmpSizeInPixels));
-    Window().EndRedraw();
-    DeactivateGc();
-    TRACES("CStartupUserWelcomeNote::DrawImageWelcomeNote(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUseWelcomeNote::~CStartupUserWelcomeNote()
-// ---------------------------------------------------------------------------
-CStartupUserWelcomeNote::~CStartupUserWelcomeNote()
-    {
-    TRACES("CStartupUserWelcomeNote::~CStartupUserWelcomeNote()");
-
-    delete iBitmap;
-
-#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
-    iView.RemoveComponent();
-#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-    if( iNoteCancelTimer )
-        {
-        iNoteCancelTimer->Cancel();
-        }
-    delete iNoteCancelTimer;
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-    TRACES("CStartupUserWelcomeNote::~CStartupUserWelcomeNote(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::ComponentControl(TInt aIndex)
-// ---------------------------------------------------------------------------
-CCoeControl* CStartupUserWelcomeNote::ComponentControl(TInt /*aIndex*/) const
-    {
-    return NULL;
-    }
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::DrawBlankScreen() const
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::DrawBlankScreen() const
-    {
-    TRACES("CStartupUserWelcomeNote::DrawBlankScreen()");
-    CWindowGc& gc = SystemGc();
-    TRect rect = Rect();
-    gc.SetPenStyle(CGraphicsContext::ENullPen);
-    gc.SetBrushColor(KRgbWhite);
-    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-    gc.DrawRect(rect);
-    ControlEnv()->WsSession().Flush(); // force draw of the context
-    TRACES("CStartupUserWelcomeNote::DrawBlankScreen(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::HandleControlEventL(...)
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::HandleControlEventL(
-        CCoeControl* /*aControl*/,
-        TCoeEvent /*aEventType*/)
-    {
-    //pure virtual from MCoeControlObserver
-    TRACES("CStartupUserWelcomeNote::HandleControlEventL()");
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::UserWelcomeNoteType()
-// ---------------------------------------------------------------------------
-TStartupWelcomeNoteType CStartupUserWelcomeNote::UserWelcomeNoteType()
-    {
-    return ( iNoteType );
-    }
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::OfferKeyEventL(...)
-// ---------------------------------------------------------------------------
-TKeyResponse CStartupUserWelcomeNote::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
-    {
-    TRACES("CStartupUserWelcomeNote::OfferKeyEventL()");
-    if( iUserWelcomeNoteShowing && !iStartupAppUi.HiddenReset() && !iUserWelcomeNoteCancelled )
-        {
-        // Cancel UWN
-        TRACES("CStartupUserWelcomeNote::OfferKeyEventL(): Timer activated - before");
-        iNoteCancelTimer->Start( 10000, 10000,
-                           TCallBack( iStartupAppUi.DoStopTimingL, &iStartupAppUi ) );
-        iUserWelcomeNoteCancelled = ETrue;
-        TRACES("CStartupUserWelcomeNote::OfferKeyEventL(): Timer activated - after");
-        }
-    TRACES("CStartupUserWelcomeNote::OfferKeyEventL(): End");
-    return EKeyWasConsumed;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::CancelNoteCancelTimer()
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::CancelNoteCancelTimer()
-    {
-    TRACES("CStartupUserWelcomeNote::CancelNoteCancelTimer()");
-    iNoteCancelTimer->Cancel();
-    TRACES("CStartupUserWelcomeNote::CancelNoteCancelTimer(): End");
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo()
-// ---------------------------------------------------------------------------
-TInt CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo()
-    {
-    TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo()");
-    TInt err( KErrGeneral );
-
-    CRepository* repository(NULL);
-
-    TRAP( err, repository = CRepository::NewL( KCRUidStartupConf ) );
-    if ( err == KErrNone )
-        {
-        TInt type;
-        TBuf<KStartupTBufMaxLength> atext;
-        TBuf<KStartupTBufMaxLength> apath;
-        TBuf<KStartupTBufMaxLength> aoperatortext;
-        TBuf<KStartupTBufMaxLength> aoperatorpath;
-
-        err = repository->Get( KStartupWelcomeNoteType, type );
-        TRACES2("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Welcome note type = %d, err = %d", type, err );
-
-        err = repository->Get( KStartupWelcomeNoteText, atext );
-        TRACES2("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Welcome note text = '%S', err = %d", &atext, err );
-
-        err = repository->Get( KStartupWelcomeNoteImage, apath );
-        TRACES2("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Welcome note image path = '%S', err = %d", &apath, err);
-
-        switch (type)
-            {
-            case EDefaultWelcomeNote:
-                {
-                TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): EDefaultWelcomeNote");
-                iNoteType = EDefaultWelcomeNote;
-
-                repository->Get( KStartupOperatorNoteImage, aoperatorpath );
-                TRACES1("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Operator image path: '%S'", &aoperatorpath);
-                TInt opImageStatus = CheckImage(aoperatorpath);
-                TRACES1("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Operator image status: %d", opImageStatus);
-
-                repository->Get( KStartupOperatorNoteText, aoperatortext );
-                TRACES1("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Operator text: '%S'", &aoperatortext);
-
-                if ( opImageStatus == KErrNone )
-                    {
-                    TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Default note type is EStartupUWNDefaultOperatorGraphic");
-                    iNoteDefaultVariationType = EStartupUWNDefaultOperatorGraphic;
-                    }
-                else if ( aoperatortext.Length() > 0 )
-                    {
-                    TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Default note type is EStartupUWNDefaultOperatorText");
-                    iNoteDefaultVariationType = EStartupUWNDefaultOperatorText;
-                    }
-                else
-                    {
-                    TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): Default note type is EStartupUWNDefaultNoNote");
-                    iNoteDefaultVariationType = EStartupUWNDefaultNoNote;
-                    }
-                }
-                break;
-            case ETextWelcomeNote:
-                {
-                TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): ETextWelcomeNote");
-                iNoteType = ETextWelcomeNote;
-                }
-                break;
-            case EImageWelcomeNote:
-                {
-                TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): EImageWelcomeNote");
-                if (CheckImage(apath) != KErrNone)
-                    {
-                    //in error case default uwn (no note) is shown
-                    iNoteType = EDefaultWelcomeNote;
-                    iNoteDefaultVariationType = EStartupUWNDefaultNoNote;
-                    }
-                else
-                    {
-                    iNoteType = EImageWelcomeNote;
-                    }
-                }
-                break;
-            default:
-                {
-                TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): default");
-                delete repository;
-                TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): End, return KErrNotFound");
-                return KErrNotFound;
-                }
-            }
-        iNoteText = atext;
-        iNotePath = apath;
-        iNoteOperText = aoperatortext;
-        iNoteOperPath = aoperatorpath;
-        }
-
-    delete repository;
-    TRACES("CStartupUserWelcomeNote::GetUserWelcomeNoteTypeInfo(): End, return KErrNone");
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::ShowInformationNoteWrapperL()
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::ShowInformationNoteWrapperL()
-    {
-    TRACES("CStartupUserWelcomeNote::ShowInformationNoteWrapperL()");
-    TRACES1("CStartupUserWelcomeNote::ShowInformationNoteWrapperL(): Note type = %d", iNoteDefaultVariationType);
-
-    TRequestStatus status;
-    CAknGlobalNote* note = CAknGlobalNote::NewLC();
-    if ( iNoteDefaultVariationType == EStartupUWNDefaultOperatorText)
-        {
-        // Set secondary display data if necessary
-        if ( iStartupAppUi.CoverUISupported() )
-            {
-            SecondaryDisplay::TWelcomeNotePckg pckg(TPtrC(iNoteOperText.Ptr()));
-            CAknSDData* sd = CAknSDData::NewL(SecondaryDisplay::KCatStartup, SecondaryDisplay::ECmdShowWelcomeNote, pckg);
-            note->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-        TRACES1("CStartupUserWelcomeNote::ShowInformationNoteWrapperL(): Operator text is '%S'", &iNoteOperText);
-        note->ShowNoteL( status, EAknGlobalTextNote, TPtrC(iNoteOperText.Ptr()) );
-        }
-    else
-        {
-        // Set secondary display data if necessary
-        if ( iStartupAppUi.CoverUISupported() )
-            {
-            SecondaryDisplay::TWelcomeNotePckg pckg(TPtrC(iNoteText.Ptr()));
-            CAknSDData* sd = CAknSDData::NewL(SecondaryDisplay::KCatStartup, SecondaryDisplay::ECmdShowWelcomeNote, pckg);
-            note->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-        TRACES1("CStartupUserWelcomeNote::ShowInformationNoteWrapperL(): Welcome text is '%S'", &iNoteText);
-        note->ShowNoteL( status, EAknGlobalTextNote, TPtrC(iNoteText.Ptr()) );
-        }
-    User::WaitForRequest( status );
-    CleanupStack::PopAndDestroy(); // note
-    TRACES("CStartupUserWelcomeNote::ShowInformationNoteWrapperL(): End");
-    }
-
-#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::SetUserWelcomeNoteShowing(...)
-// ---------------------------------------------------------------------------
-void CStartupUserWelcomeNote::SetUserWelcomeNoteShowing(TBool aValue)
-    {
-    TRACES1("CStartupUserWelcomeNote::SetUserWelcomeNoteShowing(): aValue = %d", aValue);
-    iUserWelcomeNoteShowing = aValue;
-    }
-#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
-
-// ---------------------------------------------------------------------------
-// CStartupUserWelcomeNote::SetUserWelcomeNoteShowing(...)
-// ---------------------------------------------------------------------------
-TInt CStartupUserWelcomeNote::CheckImage( const TDesC& aPath)
-    {
-    TRACES("CStartupUserWelcomeNote::CheckImage()");
-    // Check if given welcome image is available
-    RFile welcomeimage;
-    TInt err( KErrNone );
-    RFs fs;
-
-    // Connect to file server
-    err = fs.Connect();
-    if (err != KErrNone)
-        {
-        TRACES("CStartupUserWelcomeNote::CheckImage(): Unable to connect to file server. Do not show welcome image.");
-        fs.Close();
-        TRACES1("CStartupUserWelcomeNote::CheckImage(): End, return %d", err);
-        return err;
-        }
-
-    // Open welcome image
-    err = welcomeimage.Open(fs, aPath, EFileRead);
-    if (err != KErrNone)
-        {
-        TRACES("CStartupUserWelcomeNote::CheckImage(): Welcome image does not exists. Do not try to show it.");
-        welcomeimage.Close();
-        fs.Close();
-        TRACES1("CStartupUserWelcomeNote::CheckImage(): End, return %d", err);
-        return err;
-        }
-
-    welcomeimage.Close();
-    fs.Close();
-    TRACES1("CStartupUserWelcomeNote::CheckImage(): End, return %d", err);
-    return err;
-    }
-
-//  End of File
-
--- a/startupservices/Startup/src/StartupWelcomeAnimation.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,520 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*     This class is the container class of the CStartupWelcomeAnimation.
-*     Is used to show welcome animation.
-*
-*/
-
-
-// INCLUDE FILES
-#include <aknappui.h>
-#include <aknnotewrappers.h>
-#include <barsread.h> //use of TResourceReader
-#include <StarterClient.h>     //used for RemoveSplashScreen
-#include <aknbitmapanimation.h>
-#include <startup.mbg>
-#include "StartupWelcomeAnimation.h"
-#include <Startup.rsg>
-#include "StartupDefines.h"
-#include "Startup.hrh"
-#include "StartupAppUi.h"
-#include <akniconutils.h>
-
-// CONSTANTS
-const TInt KStartupAnimationShowingDuration( 4200 );//4.2 sec
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ConstructL(const TRect& aRect)
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::ConstructL(const TRect& /*aRect*/)
-    {
-    TRACES("CStartupWelcomeAnimation::ConstructL()");
-    iShowingTime = KStartupAnimationShowingDuration;
-    UpdateDrawInfo( EStartupDIStart );
-
-    iAvkonAppUi->StatusPane()->MakeVisible(EFalse);
-    CreateWindowL();
-    iAnimCancelTimer = CPeriodic::NewL( EPriorityNormal );
-
-    TRACES("CStartupWelcomeAnimation::ConstructL(): animation loading started");
-    iAnim = CAknBitmapAnimation::NewL();
-    iAnim->ExcludeAnimationFramesFromCache();
-    iAnim->SetContainerWindowL( *this );
-    iAnim->SetScaleModeForAnimationFrames(EAspectRatioPreservedAndUnusedSpaceRemoved);
-    TResourceReader rr;
-    iCoeEnv->CreateResourceReaderLC(rr, R_ANIM_IMAGE);
-    TRAPD(err, iAnim->ConstructFromResourceL( rr ))
-    if (err != KErrNone)
-        {
-        TRACES1("CStartupWelcomeAnimation::ConstructL(): ConstructFromResourceL() leaves, err = %d", err );
-        }
-    CleanupStack::PopAndDestroy();
-
-    SetRect(iAvkonAppUi->ApplicationRect());  // Results in a call to SizeChanged()
-    ActivateL();
-
-    TRACES("CStartupWelcomeAnimation::ConstructL(): animation loading ended");
-    TRACES("CStartupWelcomeAnimation::ConstructL(): End");
-    }
-
-// -----------------------------------------------------------------------------
-// CStartupWelcomeAnimation::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CStartupWelcomeAnimation* CStartupWelcomeAnimation::NewL( CStartupAppUi* aStartupAppUi,
-                                                          const TRect& aRect)
-    {
-    TRACES("CStartupWelcomeAnimation::NewL()");
-    CStartupWelcomeAnimation* self = new (ELeave) CStartupWelcomeAnimation( aStartupAppUi );
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect);
-    CleanupStack::Pop();
-    TRACES("CStartupWelcomeAnimation::NewL(): End");
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CStartupWelcomeAnimation::CStartupWelcomeAnimation()
-// ---------------------------------------------------------
-CStartupWelcomeAnimation::CStartupWelcomeAnimation( CStartupAppUi* aStartupAppUi ) :
-    iBackgroundBitmap( NULL ),
-    iSplashScreenRemoved( EFalse ),
-    iStartupAppUi( aStartupAppUi ),
-    iAnimationShowing( EFalse ),
-    iAnimationCancelled ( EFalse )
-    {
-    TRACES("CStartupWelcomeAnimation::CStartupWelcomeAnimation()");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::StartL()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::StartL()
-    {
-    TRACES("CStartupWelcomeAnimation::StartL()");
-    iAnim->StartAnimationL();
-    ControlEnv()->WsSession().Flush(); // force draw of the context
-    TRACES("CStartupWelcomeAnimation::StartL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::UpdateDrawInfo( TStartupDrawInfo aValue )
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::UpdateDrawInfo( TStartupDrawInfo aValue )
-    {
-    TRACES("CStartupWelcomeAnimation::UpdateDrawInfo()");
-    TRACES1("CStartupWelcomeAnimation::UpdateDrawInfo(): Value %d", aValue);
-    //Prevent state change if already EStartupDISystemFatalError
-    if( iDrawUpdateInfo == EStartupDISystemFatalError )
-        {
-        TRACES("CStartupWelcomeAnimation::UpdateDrawInfo(): End, preventing state change - EStartupDISystemFatalError");
-        return;
-        }
-
-    iDrawUpdateInfo = aValue;
-    TRACES("CStartupWelcomeAnimation::UpdateDrawInfo(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::DoDrawingL()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::DoDrawingL() const
-    {
-    TRACES("CStartupWelcomeAnimation::DoDrawingL()");
-    switch ( iDrawUpdateInfo )
-        {
-        case EStartupDIStart:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIStart");
-            DrawBlankScreen(); // clears screen after code query emergency call
-            }
-            break;
-        case EStartupDITouchScreenCalib:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDITouchScreenCalib");
-            RemoveSplashScreen();
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDICharging:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDICharging");
-            RemoveSplashScreen();
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDIAlarm:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIAlarm");
-            RemoveSplashScreen();
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDIHiddenReset:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIHiddenReset");
-            RemoveSplashScreen();
-            DrawBlankScreen();            
-            }
-            break;
-        case EStartupDIQueriesOn:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIQueriesOn");
-            RemoveSplashScreen();
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDIQueriesOff:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIQueriesOff");
-            }
-            break;
-        case EStartupDIWelcomeAnimStart:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimStart");
-			RemoveSplashScreen();
-			DrawBlankScreen();
-            }
-            break;
-        case EStartupDIWelcomeAnimCancelled:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimCancelled");
-            }
-            break;
-        case EStartupDIWelcomeAnimEnd:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimEnd");
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDIOperatorAnimEnd:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIOperatorAnimEnd");
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDICityTimeDateQueries:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDICityTimeDateQueries");
-            DrawBlankScreen();
-            }
-            break;
-        case EStartupDIEnd:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIEnd");
-            }
-            break;
-        case EStartupDISystemFatalError:
-            {
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDISystemFatalError");
-            }
-            break;
-        default:
-            TRACES("CStartupWelcomeAnimation::DoDrawingL(): default");
-            break;
-        }
-    TRACES("CStartupWelcomeAnimation::DoDrawingL(): End");
-    }
-
-// ---------------------------------------------------------
-// CStartupWelcomeAnimation::RemoveSplashScreen()
-// ---------------------------------------------------------
-void CStartupWelcomeAnimation::RemoveSplashScreen() const
-    {
-    TRACES("CStartupWelcomeAnimation::RemoveSplashScreen()");
-    //Remove SplashScreen
-    if( !iSplashScreenRemoved )
-        {
-        TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Connect to Starter");
-        RStarterSession startersession;
-        if( startersession.Connect() == KErrNone )
-            {
-            TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Connected to Starter");
-            startersession.EndSplashScreen();
-            TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Splash screen removed");
-            startersession.Close();
-            }
-        }
-    TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::~CStartupWelcomeAnimation()
-// ---------------------------------------------------------------------------
-CStartupWelcomeAnimation::~CStartupWelcomeAnimation()
-    {
-    TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation()");
-
-    if( iAnim )
-        {
-        if( iAnimationShowing )
-            {
-            iAnim->CancelAnimation();
-            TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): Animation cancelled");
-            }
-        }
-    delete iAnim;
-    TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iAnim deleted");
-
-    if (iBackgroundBitmap)
-        {
-        delete iBackgroundBitmap;
-        TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iBackgroundBitmap deleted");
-        }
-
-    if( iAnimCancelTimer )
-        {
-        iAnimCancelTimer->Cancel();
-        TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): Timer cancelled");
-        }
-    delete iAnimCancelTimer;
-    TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iAnimCancelTimer deleted");
-
-    TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ComponentControl(TInt aIndex)
-// ---------------------------------------------------------------------------
-CCoeControl* CStartupWelcomeAnimation::ComponentControl(TInt aIndex) const
-    {
-    switch ( aIndex )
-        {
-        case 0:
-            {
-            return iAnim;
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CountComponentControls()
-// ---------------------------------------------------------------------------
-TInt CStartupWelcomeAnimation::CountComponentControls() const
-    {
-    return iAnim ? 1 : 0; // return nbr of controls inside this container
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::Draw(const TRect& aRect) const
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::Draw(const TRect& /*aRect*/ ) const
-    {
-    TRACES("CStartupWelcomeAnimation::Draw()");
-    TRAPD(err, DoDrawingL());
-    if (err != KErrNone)
-        {
-        TRACES1("CStartupWelcomeAnimation::Draw(): DoDrawingL() leaves, err = %d", err );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::DrawBlankScreen() const
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::DrawBlankScreen() const
-    {
-    TRACES("CStartupWelcomeAnimation::DrawBlankScreen()");
-    CWindowGc& gc = SystemGc();
-    TRect rect = Rect();
-    gc.SetPenStyle(CGraphicsContext::ENullPen);
-    gc.SetBrushColor(KRgbWhite);
-    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-    gc.DrawRect(rect);
-    ControlEnv()->WsSession().Flush(); // force draw of the context
-    TRACES("CStartupWelcomeAnimation::DrawBlankScreen(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ShowingTime()
-// ---------------------------------------------------------------------------
-TInt CStartupWelcomeAnimation::ShowingTime()
-    {
-    TRACES1("CStartupWelcomeAnimation::ShowingTime(): time = %d", iShowingTime);
-    return iShowingTime;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::SizeChanged()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::SizeChanged()
-    {
-    if( iAnim )
-        {
-        iAnim->SetRect(Rect());
-        iAnim->SetPosition( TPoint(
-            (iAvkonAppUi->ApplicationRect().Width()/2) - (iAnim->BitmapAnimData()->Size().iWidth/2), 
-            (iAvkonAppUi->ApplicationRect().Height()/2) - (iAnim->BitmapAnimData()->Size().iHeight/2)
-            ) );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::EndAnimation()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::EndAnimation() const
-    {
-    TRACES("CStartupWelcomeAnimation::EndAnimation()");
-    if( iAnim )
-        {
-        TRACES("CStartupWelcomeAnimation::EndAnimation(): Cancel animation");
-        iAnim->CancelAnimation();
-        }
-    TRACES("CStartupWelcomeAnimation::EndAnimation(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandleControlEventL(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandleControlEventL(
-        CCoeControl* /*aControl*/,
-        TCoeEvent /*aEventType*/)
-    {
-    //pure virtual from MCoeControlObserver
-    TRACES("CStartupWelcomeAnimation::HandleControlEventL()");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandlePointerEventL(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    TRACES("CStartupWelcomeAnimation::HandlePointerEventL()");
-    if (AknLayoutUtils::PenEnabled())
-        {
-        TRACES1("CStartupWelcomeAnimation::HandlePointerEventL: aPointerEvent.iType == %d",aPointerEvent.iType );
-        switch (aPointerEvent.iType)
-            {
-            case TPointerEvent::EButton1Down:
-                CancelAnimation();
-                break;                    
-
-            default:
-                break;
-            }
-        }
-    TRACES("CStartupWelcomeAnimation::HandlePointerEventL(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::OfferKeyEventL(...)
-// ---------------------------------------------------------------------------
-TKeyResponse CStartupWelcomeAnimation::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode /*aType*/ )
-    {
-    TRACES("CStartupWelcomeAnimation::OfferKeyEventL()");
-    TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): aKeyEvent.iCode == %d",aKeyEvent.iCode);
-    TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): aKeyEvent.iScanCode == %d",aKeyEvent.iScanCode);
-    TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): iAnimationShowing == %d",iAnimationShowing);
-    TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): iAnimationCancelled == %d",iAnimationCancelled);
-    
-    if ( iStartupAppUi->GetOfflineModeQueryShown() )
-        {
-        TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): Key event from offline mode query");
-        // first key event comes from Offline Mode Query
-        iStartupAppUi->SetOfflineModeQueryShown( EFalse );
-        }
-    else
-        {
-        if( iAnimationShowing && !iStartupAppUi->HiddenReset() && !iAnimationCancelled )
-            {
-            if (aKeyEvent.iScanCode == EStdKeyNkpAsterisk || aKeyEvent.iScanCode == 0x2a)
-                {               
-                TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): Set clean boot");
-                iStartupAppUi->SetCleanBoot();                
-                }        
-            // Cancel animation
-            CancelAnimation();
-            }
-        else if( !iAnimationShowing && iStartupAppUi->StartupTonePlaying())
-            {
-            TRACES("CStartupWelcomeAnimation::OfferKeyEventL() Animation has completed but tone is still playing. Stop it.");
-            iStartupAppUi->StopStartupTone();
-            }
-        }
-    
-    TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): End");
-    return EKeyWasConsumed;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CancelAnimCancelTimer()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::CancelAnimCancelTimer()
-    {
-    TRACES("CStartupWelcomeAnimation::CancelAnimCancelTimer()");
-    iAnimCancelTimer->Cancel();
-    TRACES("CStartupWelcomeAnimation::CancelAnimCancelTimer(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CancelAnimation(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::CancelAnimation()
-    {
-    TRACES("CStartupWelcomeAnimation::CancelAnimation()");
-    if( iAnimationShowing && !iStartupAppUi->HiddenReset() && !iAnimationCancelled )
-        {
-        UpdateDrawInfo( EStartupDIWelcomeAnimCancelled );
-        EndAnimation();
-        TRACES("CStartupWelcomeAnimation::CancelAnimation(): Timer activated - before");
-        iAnimCancelTimer->Start( 10000, 10000, 
-                           TCallBack( iStartupAppUi->DoStopTimingL, iStartupAppUi ) );
-        TRACES("CStartupWelcomeAnimation::CancelAnimation(): Timer activated - after");
-        iAnimationCancelled = ETrue;
-        }
-    TRACES("CStartupWelcomeAnimation::CancelAnimation(): End");
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::IsAnimationCancelled(...)
-// ---------------------------------------------------------------------------
-TBool CStartupWelcomeAnimation::IsAnimationCancelled()
-    {
-    TRACES1("CStartupWelcomeAnimation::IsAnimationCancelled(): iAnimationCancelled: %d", iAnimationCancelled);
-    return iAnimationCancelled;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::SetAnimationShowing(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::SetAnimationShowing(TBool aValue)
-    {
-    TRACES("CStartupWelcomeAnimation::SetAnimationShowing()");
-    TRACES2("CStartupWelcomeAnimation::SetAnimationShowing(): iAnimationShowing changed from %d to %d",iAnimationShowing, aValue );
-    iAnimationShowing = aValue;
-    }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandleResourceChange(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandleResourceChange(TInt aType)
-    {
-    CCoeControl::HandleResourceChange(aType);
-    if(aType==KEikDynamicLayoutVariantSwitch)
-        {
-        SetRect(iAvkonAppUi->ApplicationRect()); // update rect
-        }
-   }
-
-
-
-//  End of File  
--- a/startupservices/Startup/src/startupview.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/src/startupview.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007,2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -16,9 +16,7 @@
 */
 
 
-#include <aknappui.h>
-#include <AknsBasicBackgroundControlContext.h> // Skin support
-#include <AknsDrawUtils.h> // Skin support
+
 
 #include "startupview.h"
 #include "StartupDefines.h"
@@ -52,7 +50,7 @@
 CStartupView::~CStartupView()
     {
     TRACES("CStartupView::~CStartupView()");
-    delete iBgContext;
+    
     TRACES("CStartupView::~CStartupView(): End");
     }
 
@@ -94,12 +92,6 @@
 void CStartupView::SizeChanged()
     {
     TRACES("CStartupView::SizeChanged()");
-
-    if (iBgContext)
-    	{
-    	iBgContext->SetRect( Rect() );
-    	}
-    
     if ( iComponent )
         {
         iComponent->SetRect( Rect() );
@@ -144,23 +136,15 @@
     TRACES("CStartupView::Draw()");
 
     CWindowGc& gc = SystemGc();
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ 
     gc.SetPenStyle( CGraphicsContext::ENullPen );
     gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-    
-    // Draw skin background
-    if ( !AknsDrawUtils::Background( skin, iBgContext, gc, aRect ) )
-        {
-        // If Skin is missing, clear with default color
-        gc.SetClippingRect( aRect );
-        gc.SetBrushColor( KRgbWhite );
-        gc.Clear();
-        }
-
+    gc.SetClippingRect( aRect );
+    gc.SetBrushColor( KRgbWhite );
+    gc.Clear();
     TRACES("CStartupView::Draw(): End");
     }
 
-
 // ---------------------------------------------------------------------------
 // CStartupView::CStartupView
 //
@@ -172,7 +156,6 @@
     TRACES("CStartupView::CStartupView(): End");
     }
 
-
 // ---------------------------------------------------------------------------
 // CStartupView::ConstructL
 //
@@ -181,18 +164,11 @@
 void CStartupView::ConstructL( const TRect& aRect )
     {
     TRACES("CStartupView::ConstructL()");
-
-    iAvkonAppUi->StatusPane()->MakeVisible( EFalse );
     CreateWindowL();
     SetRect( aRect );
 
 	// Create background drawing context    
     TRect bgrect(aRect.Size());
-    iBgContext = CAknsBasicBackgroundControlContext::NewL( 
-            KAknsIIDQsnBgScreen,
-    		bgrect, EFalse );
-
     ActivateL();
-
     TRACES("CStartupView::ConstructL(): End");
     }
--- a/startupservices/Startup/syserrcmd/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/group/syserrcmd.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/syserrcmd/group/syserrcmd.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -34,11 +34,11 @@
 
 MW_LAYER_SYSTEMINCLUDE
 
-LIBRARY         aknnotify.lib
 LIBRARY         efsrv.lib
 LIBRARY         euser.lib
 LIBRARY         featmgr.lib
 LIBRARY         commonengine.lib
+LIBRARY         hbwidgets.lib
 
 
 // >>> uncomment to enable function-level tracing
@@ -49,3 +49,5 @@
 // MACRO        __SSM_TRACE_INTO_FILE__
 // LIBRARY      flogger.lib
 // <<< uncomment to direct trace output to file
+
+SMPSAFE
--- a/startupservices/Startup/syserrcmd/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/inc/syserrcmd.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/syserrcmd/inc/syserrcmd.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,7 +22,7 @@
 #include <e32base.h>
 #include <ssm/ssmcustomcommand.h>
 
-class CAknGlobalNote;
+
 
 /**
  *  A custom command for displaying a note about unrecoverable
@@ -79,11 +79,6 @@
     // Custom command environment. Not owned. Set in Initialize.
     CSsmCustomCommandEnv* iEnv;
 
-    /** Global note object used to show the notification on UI. Own */
-    CAknGlobalNote* iNote;
-
-    /** Global note id for cancelling the note. */
-    TInt iNoteId;
     };
 
 #endif // SYSERRCMD_H
--- a/startupservices/Startup/syserrcmd/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/src/syserrcmd.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/Startup/syserrcmd/src/syserrcmd.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -19,73 +19,15 @@
 #include "syserrcmd.h"
 #include "trace.h"
 
-#include <AknGlobalNote.h>
-#include <aknSDData.h>
+
 #include <data_caging_path_literals.hrh>
 #include <featmgr.h>
 #include <SecondaryDisplay/SecondaryDisplayStartupAPI.h>
 #include <StringLoader.h>
 #include <startup.rsg>
 #include <stringresourcereader.h>
-
-
-_LIT( KResourceFileName, "Z:startup.rsc" );
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSysErrorPlugin::GetResourceFileNameLC
-//
-// ---------------------------------------------------------------------------
-//
-static TFileName* GetResourceFileNameLC()
-    {
-    FUNC_LOG;
-
-    // TParse uses a lot of stack space, so allocate it from heap.
-    TParse* parse = new ( ELeave ) TParse; 
-    CleanupDeletePushL( parse );
-    TInt errorCode = parse->Set( KResourceFileName, 
-                                 &KDC_APP_RESOURCE_DIR, 
-                                 NULL );
-    ERROR( errorCode, "parse::Set() failed with error code %d" );
-    User::LeaveIfError( errorCode );
-
-    TFileName* filename = new ( ELeave ) TFileName( parse->FullName() );
-
-    CleanupStack::PopAndDestroy( parse );
-    CleanupDeletePushL( filename );
+#include <hb/hbwidgets/hbdevicemessageboxsymbian.h>
 
-    INFO_1( "Resource file name: %S", filename );
-
-    return filename;
-    }
-
-// ---------------------------------------------------------------------------
-// CSysErrorPlugin::GetFatalErrorStringLC
-//
-// ---------------------------------------------------------------------------
-//
-static TBool IsCoverUiSupported()
-    {
-    FUNC_LOG;
-
-    // If this fails, default to false.
-    TRAPD( errorCode, FeatureManager::InitializeLibL() ); 
-    ERROR( errorCode, "Failed to initialize FeatureManager" );
-
-    TBool retVal = EFalse;
-    if ( errorCode == KErrNone &&
-         FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) )
-        {
-        retVal = ETrue;
-        }
-
-    FeatureManager::UnInitializeLib();
-
-    INFO_1( "CoverUiSupported = %d", retVal );
-    return retVal;
-    }
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -107,8 +49,6 @@
 CSysErrCmd::~CSysErrCmd()
     {
     FUNC_LOG;
-    
-    delete iNote;
     }
 
 
@@ -148,15 +88,6 @@
     {
     FUNC_LOG;
 
-    if ( iNote )
-        {
-        TInt errorCode( KErrNone );
-        TRAP( errorCode, iNote->CancelNoteL( iNoteId ) );
-        ERROR( errorCode, "Failed to cancel global note" );
-        }
-
-    delete iNote; // Note must be deleted here! Otherwise it doesn't complete
-    iNote = NULL; // request with KErrCancel and Cancel() gets stuck.
     }
 
 
@@ -187,34 +118,14 @@
 //
 void CSysErrCmd::DoExecuteL( TRequestStatus& aRequest )
     {
-    delete iNote;
-    iNote = NULL;
-    iNote = CAknGlobalNote::NewL();
-
-    if ( IsCoverUiSupported() )
-        {
-        CAknSDData* sdData = CAknSDData::NewL( 
-                        SecondaryDisplay::KCatStartup,
-                        SecondaryDisplay::ECmdShowErrorNote,
-                        TPckgBuf<TInt>( SecondaryDisplay::EContactService ) );
-        
-        // ownership to notifier client
-        iNote->SetSecondaryDisplayData( sdData ); 
-        }
-
-    TFileName* filename = GetResourceFileNameLC();
-    
-    RFs& fs = const_cast<RFs&>( iEnv->Rfs() );
-    
-    CStringResourceReader* resReader = CStringResourceReader::NewLC( *filename,
-                                                                     fs );
-    
-    TPtrC errorStr( resReader->ReadResourceString( 
-                                            R_SU_SELFTEST_FAILED_NOTE_TEXT ) );
-
-    iNoteId = iNote->ShowNoteL( aRequest, EAknGlobalPermanentNote, errorStr );
-    
-    CleanupStack::PopAndDestroy( resReader );
-    CleanupStack::PopAndDestroy( filename );
-    
+    aRequest = NULL;
+	//Hb device message box implementation for global permanent note goes here
+	CHbDeviceMessageBoxSymbian *aMessageBox = NULL;
+    aMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
+    _LIT(KText, "Self-test failed. Contact retailer.");
+    aMessageBox->SetTextL(KText);
+    aMessageBox -> SetDismissPolicy(0);
+	aMessageBox -> SetTimeout(0);
+    aMessageBox->ExecL();
+	delete aMessageBox;
     }
--- a/startupservices/Startup/syserrcmd/tsrc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Build information file for sf/mw/appsupport/startupservices/Startup/syserrcmd/tsrc tests.
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_TESTEXPORTS
-
-PRJ_TESTMMPFILES
-#include "../syserrcmdtest/group/bld.inf"
-#include "../syserrcmdtestsstub/group/bld.inf"
-
--- a/startupservices/Startup/syserrcmd/tsrc/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/bwins/syserrcmdtestu.def	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCSysErrCmdTest@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CSysErrCmdTest * LibEntryL(class CTestModuleIf &)
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/conf/syserrcmdtest.cfg	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-[Define]
-// Add general definitions here
-[Enddefine]
-
-[StifSettings]
-// Add stif settings here
-CheckHeapBalance= on
-[EndStifSettings]
-
-// ---------------------------------------------------------------------------
-// Test cases for Create and destroy
-// ---------------------------------------------------------------------------
-
-[Test]
-title Test Create and destroy
-create syserrcmdtest testClass
-testClass CreateAndDestroy 
-pause 1000
-delete testClass
-[Endtest]
-        
-// ---------------------------------------------------------------------------
-// Test cases for init and close
-// ---------------------------------------------------------------------------
-
-[Test]
-title Test Init and close
-create syserrcmdtest testClass
-testClass InitAndClose 
-pause 1000
-delete testClass
-[Endtest]
-// ---------------------------------------------------------------------------
-// Test cases for execute
-// ---------------------------------------------------------------------------
-        
-[Test]
-title Test Execute
-create syserrcmdtest testClass
-testClass Execute 
-pause 1000
-delete testClass
-[Endtest]
-
-// ---------------------------------------------------------------------------
-// Test cases for execute and cancel
-// ---------------------------------------------------------------------------
-
-[Test]
-title Test Execute and cancel
-create syserrcmdtest testClass
-testClass ExecuteCancel 
-pause 1000
-delete testClass
-[Endtest]
-
-// ---------------------------------------------------------------------------
-// Test cases for execute after global note
-// ---------------------------------------------------------------------------
-
-[Test]
-title Test Execute after global note
-create syserrcmdtest testClass
-testClass ExecuteAfterGlobalNote 
-pause 1000
-delete testClass
-[Endtest]
-
-// ---------------------------------------------------------------------------
-// Test cases for execute after Ui service global note
-// ---------------------------------------------------------------------------
-
-[Test]
-title Test Execute after Ui service global note
-create syserrcmdtest testClass
-testClass ExecuteAfterUiServiceGlobalNote 
-pause 1000
-delete testClass
-[Endtest]        
\ No newline at end of file
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/eabi/syserrcmdtestu.def	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Build information file for syserrcmdtest tests.
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_TESTEXPORTS
-//../init/syserrcmdtest.ini /epoc32/winscw/c/testframework/syserrcmdtest.ini
-//../conf/syserrcmdtest.cfg /epoc32/winscw/c/testframework/syserrcmdtest.cfg
-
-PRJ_TESTMMPFILES
-syserrcmdtest.mmp
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envrecall.cmd	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-@echo off
-REM Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-REM All rights reserved.
-REM This component and the accompanying materials are made available
-REM under the terms of "Eclipse Public License v1.0"
-REM which accompanies this distribution, and is available
-REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
-REM
-REM Initial Contributors:
-REM Nokia Corporation - initial contribution.
-REM
-REM Contributors:
-REM
-REM Description:  Environment setup for ssmlangselcmd tests.
-REM
-REM
-@echo on
-
-
-@echo Recall environment for syserrcmdtest...
-@echo Cleaning up stub...
-pushd ..\..\ssmlangselcmdteststub\group
-call bldmake bldfiles
-call abld test reallyclean -k
-popd
-
-@echo Recall environment for syserrcmdtest... Finished.
-        
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envsetup.cmd	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-@echo off
-REM Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-REM All rights reserved.
-REM This component and the accompanying materials are made available
-REM under the terms of "Eclipse Public License v1.0"
-REM which accompanies this distribution, and is available
-REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
-REM
-REM Initial Contributors:
-REM Nokia Corporation - initial contribution.
-REM
-REM Contributors:
-REM
-REM Description:  Environment setup for ssmlangselcmd tests.
-REM
-REM
-@echo on
-
-
-@echo Setup environment for syserrcmdtest...
-@echo Setting up stub...
-pushd ..\..\syserrcmdtestsstub\group
-call bldmake bldfiles
-call abld test reallyclean
-call abld test build
-popd
-@echo Setup environment for syserrcmdtest... Finished.
-        
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Project definition file for syserrcmdtest.
-*
-*/
-
-#include <platform_paths.hrh>
-
-TARGET          syserrcmdtest.dll
-TARGETTYPE      dll
-
-UID             0x1000008D 0x101FB3E7
-VENDORID        VID_DEFAULT
-CAPABILITY      ALL -TCB
-
-SOURCEPATH      ../src
-SOURCE          syserrcmdtest.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE	    ../../inc
-USERINCLUDE	    ../../../inc
-
-MW_LAYER_SYSTEMINCLUDE
-
-OS_LAYER_SYSTEMINCLUDE
-
-LIBRARY     syserrcmd.lib
-LIBRARY     syserrcmdtestsstub.lib
-LIBRARY     euser.lib
-LIBRARY     stiftestinterface.lib
-LIBRARY efsrv.lib
-LIBRARY aknnotify.lib
-LIBRARY akncapserverclient.lib
-LIBRARY apparc.lib
-LIBRARY eikcore.lib
-//LIBRARY     component_under_test.lib
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.pkg	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: 
-;
-;Languages
-&EN
-
-#{"syserrcmdtest"},(0x101FB3E7),1,0,0,TYPE=SA
-
-;Localised Vendor name
-%{"syserrcmdtest EN"}
-
-; Vendor name
-: "syserrcmdtest"
-
-"\epoc32\release\armv5\urel\syserrcmdtest.dll"-"c:\sys\bin\syserrcmdtest.dll"
-"..\init\syserrcmdtest.ini"-"c:\testframework\syserrcmdtest.ini"
-"..\conf\syserrcmdtest.cfg"-"c:\testframework\syserrcmdtest.cfg"
-
-; Stub for tests
-"\epoc32\release\armv5\urel\syserrcmdtestsstub.dll"-"c:\sys\bin\syserrcmdtestsstub.dll"
-
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/asyncrequesthandler.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- * 
- * Description:
- *
- */
-
-#ifndef ASYNCREQUESTHANDLER_H
-#define ASYNCREQUESTHANDLER_H
-
-// SYSTEM INCLUDE FILES
-#include <e32base.h>
-
-// DATA TYPES
-_LIT( KPanicCat, "ASYNCREQUESTHANDLER" );
-
-/** Panic codes */
-enum TArhPanicCodes
-    {
-    EArhNone,
-    EArhRequestPending
-    };
-
-// CLASS DECLARATION
-
-/**
- * A template class for handling asynchronous requests.
- *
- * @lib None.
- * @since S60 TB9.2
- */
-template <class T>
-NONSHARABLE_CLASS( CAsyncRequestHandler ): public CActive
-    {
-public:
-    
-    // TYPE DEFINTIONS
-    
-    /** HandleIssueRequest callback */
-    typedef void ( T::*HandleIssueRequest )( TRequestStatus& );
-    
-    /** HandleRunL callback */
-    typedef void ( T::*HandleRunL )( TInt );
-    
-    /** HandleRunError callback */
-    typedef TInt ( T::*HandleRunError )( TInt );
-    
-    /** HandleDoCancel callback */
-    typedef void ( T::*HandleDoCancel )();
-    
-    // DATA TYPES
-    
-    /** Request type */
-    enum TAsyncRequestType
-        {
-        ERequestOneShot,
-        ERequestContinuous
-        };
-    
-public:
-
-    /**
-     * Symbian two phased constructor.
-     * 
-     * @since S60 TB9.2
-     * @param None.
-     * @return CAsyncRequestHandler*
-     */
-    static CAsyncRequestHandler* NewL( T& aPtr,
-        HandleIssueRequest aHandleIssueRequest,
-        HandleRunL aHandleRunL,
-        HandleRunError aHandleRunError,
-        HandleDoCancel aHandleDoCancel,
-        TAsyncRequestType aType = ERequestContinuous )
-        {
-        CAsyncRequestHandler* self = CAsyncRequestHandler::NewLC( aPtr,
-            aHandleIssueRequest,
-            aHandleRunL,
-            aHandleRunError,
-            aHandleDoCancel,
-            aType );
-        CleanupStack::Pop( self );
-        return self;
-        }
-    
-    /**
-     * Symbian two phased constructor.
-     * Instance is left in the cleanup stack.
-     * 
-     * @since S60 TB9.2
-     * @param None.
-     * @return CAsyncRequestHandler*
-     */
-    static CAsyncRequestHandler* NewLC( T& aPtr,
-        HandleIssueRequest aHandleIssueRequest,
-        HandleRunL aHandleRunL,
-        HandleRunError aHandleRunError,
-        HandleDoCancel aHandleDoCancel,
-        TAsyncRequestType aType = ERequestContinuous )
-        {
-        CAsyncRequestHandler* self = new CAsyncRequestHandler( aPtr,
-            aHandleIssueRequest,
-            aHandleRunL,
-            aHandleRunError,
-            aHandleDoCancel,
-            aType );
-        CleanupStack::PushL( self );
-        return self;
-        }
-
-    /**
-     * C++ destructor.
-     */
-    virtual ~CAsyncRequestHandler()
-        {
-        Cancel();
-        }
-    
-public: // New methods
-    
-    /**
-     * Issues a new request.
-     * Panic will occur if there already is a request pending.
-     * 
-     * @since TB9.2
-     * @param None.
-     * @return None.
-     */
-    void IssueRequest()
-        {
-        __ASSERT_DEBUG( !IsActive(),
-            User::Panic( KPanicCat, EArhRequestPending ) );
-        
-        // Call the HandleIssueRequest from the template class and set active
-        ( iPtr.*iHandleIssueRequest )( iStatus );
-        SetActive();
-        }
-
-protected: // From base classes
-    
-    // @see CActive
-    void RunL()
-        {
-        // Check result and issue request again
-        TInt status = iStatus.Int();
-        if( iType == ERequestContinuous )
-            {
-            IssueRequest();
-            }
-        
-        // Call the HandleRunL from the template class
-        ( iPtr.*iHandleRunL )( status );
-        }
-
-    // @see CActive
-    TInt RunError( TInt aError )
-        {
-        // Call the HandleRunError from the template class
-        TInt err = ( iPtr.*iHandleRunError )( aError );
-        return err;
-        }
-
-    // @see CActive
-    void DoCancel()
-        {
-        // Call the HandleDoCancel from the template class
-        ( iPtr.*iHandleDoCancel )();
-        }
-
-private:
-
-    CAsyncRequestHandler( T& aPtr,
-        HandleIssueRequest aHandleIssueRequest,
-        HandleRunL aHandleRunL,
-        HandleRunError aHandleRunError,
-        HandleDoCancel aHandleDoCancel,
-        TAsyncRequestType aType = ERequestContinuous ):
-        CActive( CActive::EPriorityStandard ),
-        iPtr( aPtr ),
-        iHandleIssueRequest( aHandleIssueRequest ),
-        iHandleRunL( aHandleRunL ),
-        iHandleRunError( aHandleRunError ),
-        iHandleDoCancel( aHandleDoCancel ),
-        iType( aType )
-        {
-        CActiveScheduler::Add( this );
-        }
-
-private: // Data
-    
-    /** Pointer to the template class */
-    T& iPtr;
-    
-    /** HandleIssueRequest function pointer */
-    HandleIssueRequest iHandleIssueRequest;
-    
-    /** HandleRunL function pointer */
-    HandleRunL iHandleRunL;
-    
-    /** HandleRunError function pointer */
-    HandleRunError iHandleRunError;
-    
-    /** HandleDoCancel function pointer */
-    HandleDoCancel iHandleDoCancel;
-    
-    /** Request type */
-    TAsyncRequestType iType;
-    };
-
-#endif // ASYNCREQUESTHANDLER_H
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/syserrcmdtest.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Csyserrcmdtest class declaration.
-*
-*/
-
-
-#ifndef SYSERRCMDTEST_H
-#define SYSERRCMDTEST_H
-
-#if defined (_MSC_VER) && (_MSC_VER >= 1000)
-#pragma once
-#endif
-
-// SYSTEM INCLUDES
-#include <testscripterinternal.h>
-
-#include "asyncrequesthandler.h"
-
-// FORWARD DECLARATIONS
-class TCaseInfo;
-class CSysErrCmdTest;
-class MSsmCustomCommand;
-class CSsmCustomCommandEnv;
-
-// DESCRIPTION
-// This a Test Module interface template
-// that does not really do anything.
-typedef TInt ( CSysErrCmdTest::*TestFunction )( TTestResult& );
-
-NONSHARABLE_CLASS( CSysErrCmdTest ) : public CScriptBase
-    {
-public: // Constructors and destructor
-
-    /**
-    * Two-phased constructor.
-    */
-    static CSysErrCmdTest* NewL( CTestModuleIf& aTestModuleIf );
-
-    /**
-    * Destructor.
-    */
-    virtual ~CSysErrCmdTest();
-
-public: // Functions from base classes
-
-    TInt RunMethodL( CStifItemParser& aItem );
-
-protected: // New functions
-
-    TInt CreateAndDestroyL( CStifItemParser& aItem );
-    TInt InitAndCloseL( CStifItemParser& aItem );
-    TInt ExecuteL( CStifItemParser& aItem );
-    TInt ExecuteCancelL( CStifItemParser& aItem );
-    TInt ShowAfterAknGlobalNoteL( CStifItemParser& aItem );
-    TInt ShowAfterUiServerGlobalNoteL( CStifItemParser& aItem );
-    
-    /** HandleIssueRequest callback */
-    void HandleIssueRequest( TRequestStatus& );
-       
-    /** HandleRunL callback */
-    void HandleRunL( TInt );
-       
-    /** HandleRunError callback */
-    TInt HandleRunError( TInt );
-       
-    /** HandleDoCancel callback */
-    void HandleDoCancel();
-
-private:
-
-    /**
-    * C++ default constructor.
-    */
-    CSysErrCmdTest( CTestModuleIf& aTestModuleIf );
-
-    /**
-    * By default Symbian OS constructor is private.
-    */
-    void ConstructL();
-
-    /**
-    * Function returning test case name and pointer to test case function
-    */
-    const TCaseInfo Case( const TInt aCaseNumber ) const;
-
-private: // Data
-
-    TestFunction iMethod;
-    
-    CAsyncRequestHandler<CSysErrCmdTest>*  iExecuteHandler;
-    
-    RFs                                    iFs;
-    
-    MSsmCustomCommand*                     iSysErrCmd;
-    
-    CSsmCustomCommandEnv*                  iCustCmdEnvStub;
-    
-    TInt                                   iExecutionResult;
-    };
-
-// Function pointer related internal definitions
-
-// Hack around known GCC bug.
-#ifndef __GCC32__
-    #define GETPTR
-#else
-    #define GETPTR &
-#endif
-
-
-// An internal structure containing a test case name and
-// the pointer to function doing the test
-class TCaseInfoInternal
-    {
-    public:
-        const TText* iCaseName;
-        TestFunction iMethod;
-    };
-
-// An internal structure containing a test case name and
-// the pointer to function doing the test
-class TCaseInfo
-    {
-    public:
-        TPtrC iCaseName;
-        TestFunction iMethod;
-
-    TCaseInfo( const TText* a ) : iCaseName( ( TText* ) a )
-        {
-        };
-    };
-
-#endif // SYSERRCMDTEST_H
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/trace.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,596 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Trace macro definitions.
-*
-*/
-
-#ifndef TRACE_H
-#define TRACE_H
-
-#include <e32base.h> // TCleanupItem
-#include "traceconfiguration.hrh"
-
-#ifdef TRACE_INTO_FILE
-#include <flogger.h> // RFileLogger
-#else
-#include <e32debug.h> // RDebug
-#endif
-
-//-----------------------------------------------------------------------------
-// Constants
-//-----------------------------------------------------------------------------
-//
-
-// NOTE!
-// Replace all COMPONENT_NAME occurnaces with your own component / module name.
-
-/**
-* Prefix trace macro to complete tracing with component name.
-* Returns TDesC which can be used directly with RDebug or RFileLogger.
-*/
-#define _PREFIX_TRACE( aMsg ) TPtrC( (const TText*)L"[syserrcmdtest]: " L##aMsg )
-
-/**
-* Prefix error trace
-*/
-#define _PREFIX_ERROR( aMsg ) _PREFIX_TRACE( "[ERROR: %d]: " L##aMsg )
-
-/**
-* Prefix info trace.
-*/
-#define _PREFIX_INFO( aMsg ) _PREFIX_TRACE( "[INFO]: " L##aMsg )
-
-/**
-* Prefix macro for strings
-*/
-#define _PREFIX_CHAR( aMsg ) (const char*)"[syserrcmdtest]: " ##aMsg
-
-/**
-* Define needed directories if TRACE_INTO_FILE macro in use
-*/
-#ifdef TRACE_INTO_FILE
-
-    _LIT( KDir, "syserrcmdtest" );
-    _LIT( KFile, "syserrcmdtest_log.txt" );
-    _LIT( KFullPath, "c:\\logs\\syserrcmdtest\\" );
-
-#endif
-
-//-----------------------------------------------------------------------------
-// Error trace macros
-//-----------------------------------------------------------------------------
-//
-#ifdef ERROR_TRACE
-
-    /**
-    * Error trace definitions.
-    */
-    #ifdef TRACE_INTO_FILE
-
-        #define ERROR( aErr, aMsg )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr );\
-                }\
-            }
-        #define ERROR_1( aErr, aMsg, aP1 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1 );\
-                }\
-            }
-        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
-                }\
-            }
-        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
-                }\
-            }
-        #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4 );\
-                }\
-            }
-        #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
-                }\
-            }
-        #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
-                }\
-            }
-            
-    #else//TRACE_INTO_FILE not defined
-    
-        #define ERROR( aErr, aMsg )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr );\
-                }\
-            }
-        #define ERROR_1( aErr, aMsg, aP1 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1 );\
-                }\
-            }
-        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
-                }\
-            }
-        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
-                }\
-            }
-        #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4 );\
-                }\
-            }
-        #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
-                }\
-            }
-        #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
-            {\
-            if( aErr < KErrNone )\
-                {\
-                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5, aP6 );\
-                }\
-            }
-    
-    #endif//TRACE_INTO_FILE
-
-    #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg )
-    #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 )
-    #define ERROR_GEN_2( aMsg, aP1, aP2 ) ERROR_2( KErrGeneral, aMsg, aP1, aP2 )
-    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 ) ERROR_3( KErrGeneral, aMsg, aP1, aP3 )
-    #define ERROR_GEN_4( aMsg, aP1, aP2, aP3, aP4 ) ERROR_4( KErrGeneral, aMsg, aP1, aP3, aP4 )
-    #define ERROR_GEN_5( aMsg, aP1, aP2, aP3, aP4, aP5 ) ERROR_5( KErrGeneral, aMsg, aP1, aP3, aP4, aP5 )
-    #define ERROR_GEN_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 ) ERROR_6( KErrGeneral, aMsg, aP1, aP3, aP4, aP5, aP6 )
-
-#else//ERROR_TRACE not defined
-
-    #define ERROR( aErr, aMsg )
-    #define ERROR_1( aErr, aMsg, aP1 )
-    #define ERROR_2( aErr, aMsg, aP1, aP2 )
-    #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )
-    #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )
-    #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )
-    #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
-
-    #define ERROR_GEN( aMsg )
-    #define ERROR_GEN_1( aMsg, aP1 )
-    #define ERROR_GEN_2( aMsg, aP1, aP2 )
-    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 )
-    #define ERROR_GEN_4( aMsg, aP1, aP2, aP3, aP4 )
-    #define ERROR_GEN_5( aMsg, aP1, aP2, aP3, aP4, aP5 )
-    #define ERROR_GEN_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
-
-#endif//ERROR_TRACE
-
-//-----------------------------------------------------------------------------
-// TRAP and trace with error macro
-//-----------------------------------------------------------------------------
-//
-#define TRAP_ERROR( aErr, aFunction )\
-    {\
-    TRAP( aErr, aFunction );\
-    TPtrC8 file( ( TText8* )__FILE__ );\
-    ERROR_2( aErr, "Trapped leave in '%S' line %d", &file, __LINE__);\
-    }
-
-//-----------------------------------------------------------------------------
-// Info trace macros
-//-----------------------------------------------------------------------------
-//
-#ifdef INFO_TRACE
-
-    /**
-    * Info log message definitions.
-    */
-    #ifdef TRACE_INTO_FILE
-    
-        #define INFO( aMsg )\
-            {\
-            RFileLogger::Write( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ) );\
-            }
-        #define INFO_1( aMsg, aP1 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1 );\
-            }
-        #define INFO_2( aMsg, aP1, aP2 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2 );\
-            }
-        #define INFO_3( aMsg, aP1, aP2, aP3 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
-            }
-        #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
-            }
-        #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
-            }
-        #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
-            {\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5, aP6 );\
-            }
-
-    #else//TRACE_INTO_FILE not defined
-
-        #define INFO( aMsg )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ) );\
-            }
-        #define INFO_1( aMsg, aP1 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1 );\
-            }
-        #define INFO_2( aMsg, aP1, aP2 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2 );\
-            }
-        #define INFO_3( aMsg, aP1, aP2, aP3 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
-            }
-        #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
-            }
-        #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
-            }
-        #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
-            {\
-            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5, aP6 );\
-            }
-
-    #endif//TRACE_INTO_FILE
-        
-#else//INFO_TRACE not defined
-
-    #define INFO( aMsg )
-    #define INFO_1( aMsg, aP1 )
-    #define INFO_2( aMsg, aP1, aP2 )
-    #define INFO_3( aMsg, aP1, aP2, aP3 )
-    #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )
-    #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )
-    #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
-
-#endif//INFO_TRACE
-
-//-----------------------------------------------------------------------------
-// Trace current client thread name and process id
-//-----------------------------------------------------------------------------
-//
-#ifdef CLIENT_TRACE
-
-    #define CLIENT_PROCESS\
-        {\
-        CLIENT_PROCESS_PREFIX( "" );\
-        }        
-
-    #define CLIENT_PROCESS_PREFIX( aPrefix )\
-        {\
-        RProcess process;\
-        TPtrC name( process.Name() );\
-        TSecureId sid( process.SecureId() );\
-        TPtrC prefix( _S( aPrefix ) );\
-        if( prefix.Length() )\
-            {\
-            INFO_3( "%S: CLIENT - Name: [%S], Sid: [0x%x]", &prefix, &name, sid.iId );\
-            }\
-        else\
-            {\
-            INFO_2( "CLIENT - Name: [%S], Sid: [0x%x]", &name, sid.iId );\
-            }\
-        process.Close();\
-        }        
-
-    #define CLIENT_MESSAGE( aMsg )\
-        {\
-        CLIENT_MESSAGE_PREFIX( "", aMsg );\
-        }
-
-    #define CLIENT_MESSAGE_PREFIX( aPrefix, aMsg )\
-        {\
-        RThread thread;\
-        TInt err = aMsg.Client( thread );\
-        if( err == KErrNone )\
-            {\
-            RProcess process;\
-            err = thread.Process( process );\
-            if( err == KErrNone )\
-                {\
-                TPtrC threadName( thread.Name() );\
-                TUid processUid( process.SecureId() );\
-                TPtrC prefix( _S( aPrefix ) );\
-                if( prefix.Length() )\
-                    {\
-                    INFO_4( "%S: MSG - Name: [%S], Sid: [0x%x], Message ID: [%d]",\
-                        &prefix,\
-                        &threadName,\
-                        processUid,\
-                        aMsg.Function() );\
-                    }\
-                else\
-                    {\
-                    INFO_3( "MSG - Name: [%S], Sid: [0x%x], Message ID: [%d]",\
-                        &threadName,\
-                        processUid,\
-                        aMsg.Function() );\
-                    }\
-                }\
-            process.Close();\
-            }\
-        thread.Close();\
-        }
-
-#else
-
-    #define CLIENT_PROCESS
-    #define CLIENT_PROCESS_PREFIX( aPrefix )
-    #define CLIENT_MESSAGE( aMsg )
-    #define CLIENT_MESSAGE_PREFIX( aPrefix, aMsg )
-
-#endif
-
-//-----------------------------------------------------------------------------
-// Function trace macros
-//-----------------------------------------------------------------------------
-//
-#ifdef FUNC_TRACE
-
-    /**
-    * Function logging definitions.
-    */
-    #ifdef TRACE_INTO_FILE
-    
-        #define FUNC( aMsg, aP1 )\
-            {\
-            TPtrC8 trace( _S8( aMsg ) );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, trace, aP1 );\
-            }\
-    
-    #else//TRACE_INTO_FILE not defined
-    
-        #define FUNC( aMsg, aP1 )\
-            {\
-            RDebug::Printf( aMsg, aP1 );\
-            }\
-    
-    #endif//TRACE_INTO_FILE
-        
-    /**
-    * Function trace helper class.
-    * 
-    * NOTE:
-    * LC -methods cannot be trapped. Therefore if LC -method leaves
-    * END trace is used instead of LEAVE trace.
-    * If you have an idea how to round this problem please tell.
-    */
-    _LIT8( KFuncNameTerminator, "(" );
-    _LIT8( KFuncLeavePatternL, "L" );
-    class TFuncLog
-        {
-        public:
-            static void Cleanup( TAny* aPtr )
-                {
-                TFuncLog* self = static_cast< TFuncLog* >( aPtr );
-                self->iLeft = ETrue;
-                FUNC( _PREFIX_CHAR("%S-LEAVE"), &self->iFunc ); // Leave detected
-                }
-            inline TFuncLog( const char* aFunc ) :
-                    iFunc( aFunc ? _S8( aFunc ) : _S8("") ),
-                    iLeft( EFalse ),
-                    iCleanupItem( Cleanup, this ),
-                    iCanLeave( EFalse )
-                {
-                TInt pos( iFunc.Find( KFuncNameTerminator ) );
-                if( pos != KErrNotFound )
-                    {
-                    iFunc.Set( iFunc.Left( pos ) );
-                    iCanLeave = !iFunc.Right( KFuncLeavePatternL().Length() ).Compare( KFuncLeavePatternL );
-                    if ( iCanLeave )
-                        {
-                        CleanupStack::PushL( iCleanupItem ); // Ignore warnings
-                        }
-                    }
-                FUNC( _PREFIX_CHAR("%S-START"), &iFunc );
-                }
-
-            inline ~TFuncLog()
-                {
-                if ( !iLeft )
-                    {
-                    if ( iCanLeave )
-                        {
-                        CleanupStack::Pop( this ); // Pop the cleanup item
-                        }
-                    FUNC( _PREFIX_CHAR("%S-END"), &iFunc ); // Normally finished
-                    }
-                }
-
-        private: // Data
-            TPtrC8 iFunc;
-            TBool iLeft;
-            TCleanupItem iCleanupItem;
-            TBool iCanLeave;
-        };
-    #define FUNC_LOG TFuncLog _fl( __PRETTY_FUNCTION__ );
-    
-#else//FUNC_TRACE not defined
-
-    #define FUNC_LOG
-
-#endif//FUNC_TRACE
-
-//-----------------------------------------------------------------------------
-// Timestamp trace macros
-//-----------------------------------------------------------------------------
-//
-#ifdef TIMESTAMP_TRACE
-
-    #ifdef TRACE_INTO_FILE
-    
-        #define TIMESTAMP( aCaption )\
-            {\
-            TTime t;\
-            t.HomeTime();\
-            TDateTime dt = t.DateTime();\
-            _LIT( KCaption, aCaption );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
-                _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
-                    &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
-            }
-
-    #else//TRACE_INTO_FILE not defined
-    
-        #define TIMESTAMP( aCaption )\
-            {\
-            TTime t;\
-            t.HomeTime();\
-            TDateTime dt = t.DateTime();\
-            _LIT( KCaption, aCaption );\
-            RDebug::Print( _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
-                &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
-            }
-
-    #endif//TRACE_INTO_FILE
-
-#else//TIMESTAMP_TRACE not defined
-
-    #define TIMESTAMP( aCaption )
-
-#endif//TIMESTAMP_TRACE
-
-#ifdef HEAP_TRACE
-
-    #ifdef TRACE_INTO_FILE
-
-        #define HEAP( aMsg )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace );\
-            }
-        #define HEAP_1( aMsg, aP1 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1 );\
-            }
-        #define HEAP_2( aMsg, aP1, aP2 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2 );\
-            }
-        #define HEAP_3( aMsg, aP1, aP2, aP3 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3 );\
-            }
-        #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3, aP4 );\
-            }
-
-    #else//TRACE_INTO_FILE not defined
-
-        #define HEAP( aMsg )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace );\
-            }
-        #define HEAP_1( aMsg, aP1 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1 );\
-            }
-        #define HEAP_2( aMsg, aP1, aP2 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2 );\
-            }
-        #define HEAP_3( aMsg, aP1, aP2, aP3 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3 );\
-            }
-        #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )\
-            {\
-            TInt totalAllocSpace = 0;\
-            User::AllocSize( totalAllocSpace );\
-            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3, aP4 );\
-            }
-
-    #endif//TRACE_INTO_FILE
-
-#else//HEAP_TRACE not defined
-
-    #define HEAP( aMsg )
-    #define HEAP_1( aMsg, aP1 )
-    #define HEAP_2( aMsg, aP1, aP2 )
-    #define HEAP_3( aMsg, aP1, aP2, aP3 )
-    #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )
-
-#endif//HEAP_TRACE
-
-#endif
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/traceconfiguration.hrh	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Trace Macro Configurations.
-*
-*/
-
-
-#ifndef TRACECONFIGURATION_HRH
-#define TRACECONFIGURATION_HRH
-
-//-----------------------------------------------------------------------------
-// Trace definitions
-//-----------------------------------------------------------------------------
-//
-
-/**
-* Error trace enabled
-*/
-#ifdef _DEBUG
-    #define ERROR_TRACE
-#else
-    #undef ERROR_TRACE
-#endif
-
-/**
-* Info trace enabled
-*/
-#ifdef _DEBUG
-    #define INFO_TRACE
-#else
-    #undef INFO_TRACE
-#endif
-
-/**
-* Timestamp tracing on
-*/
-#ifdef _DEBUG
-    #define TIMESTAMP_TRACE
-#else
-    #undef TIMESTAMP_TRACE
-#endif
-
-/**
-* Tracing current client process and thread
-*/
-#ifdef _DEBUG
-    #define CLIENT_TRACE
-#else
-    #undef CLIENT_TRACE
-#endif
-
-/**
-* Function trace enabled
-*/
-#ifdef _DEBUG
-    #define FUNC_TRACE
-#else
-    #undef FUNC_TRACE
-#endif
-
-/**
-* Tracing into file enabled, default RDebug
-*/
-#undef TRACE_INTO_FILE
-
-#endif
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/init/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/init/syserrcmdtest.ini	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-#
-# This is STIFTestFramework initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set following test engine settings:
-#	- Set Test Reporting mode. TestReportMode's possible values are:
-#		+ 'Summary': Summary of the tested test cases.
-#		+ 'Environment': Hardware and software info.
-#		+ 'TestCases': Test case report.
-#		+ 'FullReport': Set of all above ones.
-#		+ Example 'TestReportMode= Summary TestCases'
-#
-# 	- CreateTestReport setting controls report creation mode
-#		+ YES, Test report will created.
-#		+ NO, No Test report.
-#
-# 	- File path indicates the base path of the test report.
-# 	- File name indicates the name of the test report.
-#
-# 	- File format indicates the type of the test report.
-#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
-#		+ HTML, Test report will be html type, for example 'TestReport.html'.
-#
-# 	- File output indicates output source of the test report.
-#		+ FILE, Test report logging to file.
-#		+ RDEBUG, Test report logging to using rdebug.
-#
-# 	- File Creation Mode indicates test report overwriting if file exist.
-#		+ OVERWRITE, Overwrites if the Test report file exist.
-#		+ APPEND, Continue logging after the old Test report information if 
-#                 report exist.
-# 	- Sets a device reset module's dll name(Reboot).
-#		+ If Nokia specific reset module is not available or it is not correct one
-#		  StifHWResetStub module may use as a template for user specific reset
-#		  module. 
-# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
-#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
-#
-
-[Engine_Defaults]
-
-TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment', 'TestCases' or 'FullReport'
-
-CreateTestReport= YES			# Possible values: YES or NO
-
-TestReportFilePath= c:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-DisableMeasurement= stifmeasurementdisablenone	# Possible values are:
-						# 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
-					  	# 'stifmeasurementplugin01', 'stifmeasurementplugin02',
-					  	# 'stifmeasurementplugin03', 'stifmeasurementplugin04',
-					  	# 'stifmeasurementplugin05' or 'stifbappeaprofiler'
-
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-# Modules are added between module tags
-# tags. Module name is specified after ModuleName= tag, like
-# ModuleName= XXXXXXXXX
-# Modules might have initialisation file, specified as
-# IniFile= c:\testframework\YYYYYY
-# Modules might have several configuration files, like
-# TestCaseFile= c:\testframework\NormalCases.txt
-# TestCaseFile= c:\testframework\SmokeCases.txt
-# TestCaseFile= c:\testframework\ManualCases.txt
-
-# (TestCaseFile is synonym for old term ConfigFile)
-
-# Following case specifies demo module settings. Demo module
-# does not read any settings from file, so tags 
-# IniFile and TestCaseFile are not used.
-# In the simplest case it is enough to specify only the
-# name of the test module when adding new test module
-[New_Module]
-ModuleName= TestScripter
-TestCaseFile= c:\testframework\syserrcmdtest.cfg
-[End_Module]
-
-# Load testmoduleXXX, optionally with initialization file and/or test case files
-#[New_Module]
-#ModuleName= testmodulexxx
-
-#TestModuleXXX used initialization file
-#IniFile= c:\testframework\init.txt
-
-#TestModuleXXX used configuration file(s)
-#TestCaseFile= c:\testframework\testcases1.cfg
-#TestCaseFile= c:\testframework\testcases2.cfg
-#TestCaseFile= c:\testframework\manualtestcases.cfg
-
-#[End_Module]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set STIFTestFramework logging overwrite parameters for Logger.
-# 	Hardware and emulator environment logging path and styles can
-# 	be configured from here to overwrite the Logger's implemented values.
-#	
-#	Settings description:
-#	- Indicates option for creation log directory/directories. If log directory/directories
-#         is/are not created by user they will make by software.
-#		+ YES, Create log directory/directories if not allready exist.
-#		+ NO, Log directory/directories not created. Only created one is used.
-#
-#	- Overwrite emulator path setting.
-#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
-#		           Logger's path 'D:\LOGS\Module\' with those definition the path
-#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
-#
-#	- Overwrite emulator's logging format.
-#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
-#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
-#
-#	- Overwrited emulator logging output source.
-#		+ FILE, Logging to file(s).
-#		+ RDEBUG, Logging to using rdebug(s).
-#
-#	- Overwrite hardware path setting (Same description as above in emulator path).
-#	- Overwrite hardware's logging format(Same description as above in emulator format).
-#	- Overwrite hardware's logging output source(Same description as above in emulator output).
-#
-#	- File Creation Mode indicates file overwriting if file exist.
-#		+ OVERWRITE, Overwrites if file(s) exist.
-#		+ APPEND, Continue logging after the old logging information if file(s) exist.
-#
-#	- Will thread id include to the log filename.
-#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
-#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
-#
-#	- Will time stamps include the to log file.
-#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
-#                 for example'12.Nov.2003 115958    LOGGING INFO'
-#		+ NO, No time stamp(s).
-#
-#	- Will line breaks include to the log file.
-#		+ YES, Each logging event includes line break and next log event is in own line.
-#		+ NO, No line break(s).
-#
-#	- Will event ranking include to the log file.
-#		+ YES, Event ranking number added to each line in log file(s). Ranking number 
-#                 depends on environment's tics, for example(includes time stamp also)
-#                 '012   12.Nov.2003 115958    LOGGING INFO'
-#		+ NO, No event ranking.
-#
-
-[Logger_Defaults]
-
-#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' 
-#NOTE: TestEngine and TestServer logging settings cannot change here 
-
-#CreateLogDirectories= YES		# Possible values: YES or NO
-
-#EmulatorBasePath= C:\LOGS\TestFramework\
-#EmulatorFormat= HTML			# Possible values: TXT or HTML
-#EmulatorOutput= FILE			# Possible values: FILE or RDEBUG
-
-#HardwareBasePath= D:\LOGS\TestFramework\
-#HardwareFormat= HTML			# Possible values: TXT or HTML
-#HardwareOutput= FILE			# Possible values: FILE or RDEBUG
-
-#FileCreationMode= OVERWRITE		# Possible values: OVERWRITE or APPEND
-
-#ThreadIdToLogFile= YES			# Possible values: YES or NO
-#WithTimeStamp= YES			# Possible values: YES or NO
-#WithLineBreak= YES			# Possible values: YES or NO
-#WithEventRanking= YES			# Possible values: YES or NO
-
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/src/syserrcmdtest.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CSysErrCmdTest class implementation.
-*
-*/
-
-#include <e32debug.h>
-#include <stifparser.h>
-#include <stiftestinterface.h>
-
-#include <aknglobalnote.h>
-#include <akncapserverclient.h>
-#include <ssm/ssmcustomcommand.h>
-
-#include "syserrcmdtest.h"
-#include "syserrcmdfactory.h"
-#include "syserrcmdtestsstub.h"
-#include "trace.h"
-
-//  INTERNAL INCLUDES
-NONSHARABLE_CLASS( TWaitInfo )
-    {
-    public:
-    
-        CPeriodic* iPeriodic;
-        CActiveSchedulerWait* iWait;
-    };
-    
-
-/**
-* Call back method when we need to stop active scheduler wait.
-*/
-LOCAL_C TInt WaitCallBack( TAny* aSelf )
-    {
-    if( aSelf )
-        {
-        TWaitInfo* info = static_cast<TWaitInfo*>( aSelf );
-        if( info->iPeriodic )
-            {
-            info->iPeriodic->Cancel();
-            }
-        if( info->iWait )
-            {
-            if( info->iWait->IsStarted() )
-                {
-                info->iWait->AsyncStop();
-                }
-            }
-        }
-    
-    return KErrNone;
-    }
-
-/**
-* Helper method to wait current scheduler before teardown is completed.
-*/
-LOCAL_C void WaitL( TInt aIntervalInMicorseconds )
-    {
-    TWaitInfo info;
-    
-    // Construct periodic
-    CPeriodic* periodic = CPeriodic::NewL( CActive::EPriorityStandard );
-    CleanupStack::PushL( periodic );
-    info.iPeriodic = periodic;
-    
-    // Construct active scheduler wait
-    CActiveSchedulerWait* wait = new( ELeave ) CActiveSchedulerWait;
-    CleanupStack::PushL( wait );
-    info.iWait = wait;
-    
-    // Start timer and wait
-    TCallBack cb( WaitCallBack, &info );
-    periodic->Start( aIntervalInMicorseconds, aIntervalInMicorseconds, cb );
-    wait->Start();
-    
-    // Cleanup
-    CleanupStack::PopAndDestroy( wait );
-    CleanupStack::PopAndDestroy( periodic );
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::LibEntryL
-// Returns: Poiter to CSysErrCmdTest class
-// ---------------------------------------------------------
-EXPORT_C CSysErrCmdTest* LibEntryL( CTestModuleIf& aTestModuleIf )
-    {
-    FUNC_LOG;
-    
-    CSysErrCmdTest* libEntry( CSysErrCmdTest::NewL( aTestModuleIf ) );
-    return libEntry;
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::CSysErrCmdTest
-// ---------------------------------------------------------
-CSysErrCmdTest::CSysErrCmdTest( CTestModuleIf& aTestModuleIf ) :
-    CScriptBase( aTestModuleIf )
-    {
-    FUNC_LOG;    
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::ConstructL
-// ---------------------------------------------------------
-void CSysErrCmdTest::ConstructL()
-    {
-    FUNC_LOG;
-    
-    iExecuteHandler = CAsyncRequestHandler<CSysErrCmdTest>::NewL(
-                                    *this,
-                                    HandleIssueRequest,
-                                    HandleRunL,
-                                    HandleRunError,
-                                    HandleDoCancel,
-                    CAsyncRequestHandler<CSysErrCmdTest>::ERequestOneShot );
-
-    User::LeaveIfError( iFs.Connect() );
-    
-    iCustCmdEnvStub = SysErrCmdTestsStub::CustomCommandEnvStubL( iFs );
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::NewL
-// ---------------------------------------------------------
-CSysErrCmdTest* CSysErrCmdTest::NewL( CTestModuleIf& aTestModuleIf )
-    {
-    FUNC_LOG;
-    
-    CSysErrCmdTest* self = new (ELeave) CSysErrCmdTest( aTestModuleIf );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::~CSysErrCmdTest
-// ---------------------------------------------------------
-CSysErrCmdTest::~CSysErrCmdTest()
-    {
-    iFs.Close();
-    delete iExecuteHandler;
-    delete iCustCmdEnvStub;
-    FUNC_LOG;    
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::RunMethodL
-// ---------------------------------------------------------
-TInt CSysErrCmdTest::RunMethodL( CStifItemParser& aItem )
-    {
-    FUNC_LOG;
-    
-    const TStifFunctionInfo KFunctions[] =
-        {
-        // Copy this line for every implemented function.
-        // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function.
-        ENTRY( "CreateAndDestroy", CSysErrCmdTest::CreateAndDestroyL ),
-        ENTRY( "InitAndClose", CSysErrCmdTest::InitAndCloseL ),
-        ENTRY( "Execute", CSysErrCmdTest::ExecuteL ),
-        ENTRY( "ExecuteCancel", CSysErrCmdTest::ExecuteCancelL ),
-        ENTRY( "ExecuteAfterGlobalNote", CSysErrCmdTest::ShowAfterAknGlobalNoteL ),
-        ENTRY( "ExecuteAfterUiServiceGlobalNote", CSysErrCmdTest::ShowAfterUiServerGlobalNoteL )
-        };
-    const TInt count( sizeof( KFunctions ) / sizeof( TStifFunctionInfo ) );
-    TInt ret( RunInternalL( KFunctions, count, aItem ) );
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::CreateAndDestroyL
-// ---------------------------------------------------------
-    
-TInt CSysErrCmdTest::CreateAndDestroyL( CStifItemParser& aItem )
-    {
-    FUNC_LOG;
-    ( void )aItem;
-    MSsmCustomCommand* sysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
-    sysErrCmd->Release();
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::InitAndCloseL
-// ---------------------------------------------------------
-TInt CSysErrCmdTest::InitAndCloseL( CStifItemParser& aItem )
-    {
-    FUNC_LOG;
-    ( void )aItem;
-
-    MSsmCustomCommand* sysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
-     
-    TInt err( sysErrCmd->Initialize( iCustCmdEnvStub ) );
-    ERROR( err, "Failed to init syserrcmd" );
-    User::LeaveIfError( err );
-    
-    sysErrCmd->Close();    
-    sysErrCmd->Release();
-
-    return KErrNone;
-    }
-// ---------------------------------------------------------
-// CSysErrCmdTest::ExecuteL
-// ---------------------------------------------------------
-
-TInt CSysErrCmdTest::ExecuteL( CStifItemParser& aItem )
-    {
-    FUNC_LOG;
-    ( void )aItem;
-    iSysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
-    TInt err( iSysErrCmd->Initialize( iCustCmdEnvStub ) );
-    ERROR( err, "Failed to init syserrcmd" );
-    User::LeaveIfError( err );
-    
-    iExecuteHandler->IssueRequest();
-    
-    WaitL( 5000 );
-    
-    iSysErrCmd->Close();
-    iSysErrCmd->Release();
-    
-    INFO_1( "Execution result %d", iExecutionResult );
-    
-    return iExecutionResult;
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::ExecuteL
-// ---------------------------------------------------------
-
-TInt CSysErrCmdTest::ExecuteCancelL( CStifItemParser& aItem )
-    {
-    FUNC_LOG;
-    ( void )aItem;
-    iSysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
-    TInt err( iSysErrCmd->Initialize( iCustCmdEnvStub ) );
-    ERROR( err, "Failed to init syserrcmd" );
-    User::LeaveIfError( err );
-    
-    iExecuteHandler->IssueRequest();
-    
-    WaitL( 5000 );
-
-    iSysErrCmd->ExecuteCancel();
-    
-    WaitL( 5000 );
-        
-    iSysErrCmd->Close();
-    iSysErrCmd->Release();
-    
-    INFO_1( "ExecutionCancel result %d", iExecutionResult );
-    
-    return ( iExecutionResult == KErrCancel ) ? KErrNone : KErrGeneral;    
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::ShowAfterAknGlobalNoteL
-// ---------------------------------------------------------
-TInt CSysErrCmdTest::ShowAfterAknGlobalNoteL( CStifItemParser& aItem )
-    {
-    CAknGlobalNote* note = CAknGlobalNote::NewLC();
-    note->ShowNoteL( EAknGlobalInformationNote, _L("CAknGlobalNote::ShowNoteL()") );
-    CleanupStack::PopAndDestroy( note );
-
-    return ExecuteL( aItem );
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::ShowAfterUiServerGlobalNoteL
-// ---------------------------------------------------------
-TInt CSysErrCmdTest::ShowAfterUiServerGlobalNoteL( CStifItemParser& aItem )
-    {
-    RAknUiServer aknSrv;
-    
-    User::LeaveIfError( aknSrv.Connect() );
-    
-    CleanupClosePushL( aknSrv );
-    
-    aknSrv.ShowGlobalNoteL(  _L("RAknUiServer::ShowGlobalNoteL()"), EAknGlobalInformationNote );
-    
-    CleanupStack::PopAndDestroy( &aknSrv );
-    
-    return ExecuteL( aItem );
-    }
-
-// ---------------------------------------------------------
-// CSysErrCmdTest::HandleIssueRequest
-// ---------------------------------------------------------
-
-void CSysErrCmdTest::HandleIssueRequest( TRequestStatus& aRequest )
-    {
-    FUNC_LOG;
-    
-    iSysErrCmd->Execute( KNullDesC8, aRequest );
-
-    }
-// ---------------------------------------------------------
-// CSysErrCmdTest::HandleRunL
-// ---------------------------------------------------------
-   
-void CSysErrCmdTest::HandleRunL( TInt aStatus )
-    {
-    FUNC_LOG;
-    INFO_1( "CSysErrCmdTest::HandleRunL %d", aStatus );
-    
-    if ( KErrNone != aStatus )
-        {
-        iExecutionResult = aStatus;
-        }
-    }
-// ---------------------------------------------------------
-// CSysErrCmdTest::HandleRunError
-// ---------------------------------------------------------
-   
-TInt CSysErrCmdTest::HandleRunError( TInt aError )
-    {
-    FUNC_LOG;
-    ERROR( aError, "CSysErrCmdTest::HandleRunError" );
-    return KErrNone;
-    }
-// ---------------------------------------------------------
-// CSysErrCmdTest::HandleDoCancel
-// ---------------------------------------------------------
-   
-void CSysErrCmdTest::HandleDoCancel()
-    {
-    FUNC_LOG;
-    }
-
-    
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/bwins/syserrcmdtestsstubu.def	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-EXPORTS
-	?CustomCommandEnvStubL@SysErrCmdTestsStub@@SAPAVCSsmCustomCommandEnv@@AAVRFs@@@Z @ 1 NONAME ; class CSsmCustomCommandEnv * SysErrCmdTestsStub::CustomCommandEnvStubL(class RFs &)
-	?Rfs@CSsmCustomCommandEnv@@UBEABVRFs@@XZ @ 2 NONAME ; class RFs const & CSsmCustomCommandEnv::Rfs(void) const
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/eabi/syserrcmdtestsstubu.def	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_ZN18SysErrCmdTestsStub21CustomCommandEnvStubLER3RFs @ 1 NONAME
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Build information file for ssmlangselcmdtest tests.
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_TESTEXPORTS
-../inc/syserrcmdtestsstub.h                   |../../inc/syserrcmdtestsstub.h
-
-PRJ_TESTMMPFILES
-syserrcmdtestsstub.mmp
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/syserrcmdtestsstub.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Project definition file for ssmlangselcmdtest.
-*
-*/
-
-#include <platform_paths.hrh>
-
-TARGET          syserrcmdtestsstub.dll
-TARGETTYPE      dll
-
-UID             0x1000008D 0x101FB3E9
-VENDORID        VID_DEFAULT
-CAPABILITY      ALL -TCB
-
-SOURCEPATH      ../src
-SOURCE 			    ssmcustomcommandenvstub.cpp
-SOURCE 			    syserrcmdtestsstub.cpp
-
-
-USERINCLUDE     ../inc
-
-OS_LAYER_SYSTEMINCLUDE
-
-LIBRARY     euser.lib
-
-
-
-
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/inc/syserrcmdtestsstub.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declaration of SsmLangSelCmdTestStub class.
-*
-*/
-
-#ifndef SYSERRCMDTESTSSTUB_H
-#define SYSERRCMDTESTSSTUB_H
-
-#include <e32base.h>
-
-class CSsmCustomCommandEnv;
-class RFs;
-/**
-* Stub class for syserrcmd tests
-*
-*/
-NONSHARABLE_CLASS( SysErrCmdTestsStub )
-    {
-public:
-    /**
-     * Methods for mapping p&s, cenrep and feature Uids
-     *
-     * @param aUid The Uid to map
-     * @return The mapped Uid 
-     */
-    
-    IMPORT_C static CSsmCustomCommandEnv* CustomCommandEnvStubL( RFs& aRfs );
-
-    };
-
-#endif // SYSERRCMDTESTSSTUB_H
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/ssmcustomcommandenvstub.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- * 
- * Description:
- *
- */
-
-// SYSTEM INCLUDES
-
-// USER INCLUDES
-#include <ssm/ssmcustomcommand.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------------------------
-//
-CSsmCustomCommandEnv::CSsmCustomCommandEnv( RFs& aRfs )
-:iFs( aRfs )
-    {
-
-    }
-
-
-// ---------------------------------------------------------------------------
-// Symbian two phased constructor.
-// ---------------------------------------------------------------------------
-//
-CSsmCustomCommandEnv* CSsmCustomCommandEnv::NewL( RFs& aRfs )
-    {
-    CSsmCustomCommandEnv* self = new ( ELeave ) CSsmCustomCommandEnv( aRfs );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// C++ destructor.
-// ---------------------------------------------------------------------------
-//
-CSsmCustomCommandEnv::~CSsmCustomCommandEnv()
-    {
-
-    }
-// ---------------------------------------------------------------------------
-// CSsmCustomCommandEnv::Rfs
-// ---------------------------------------------------------------------------
-//
-const RFs& CSsmCustomCommandEnv::Rfs() const
-    {
-    return iFs;
-    }
-// End of file
--- a/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/syserrcmdtestsstub.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- * 
- * Description:
- *
- */
-
-// SYSTEM INCLUDES
-
-// USER INCLUDES
-#include "syserrcmdtestsstub.h"
-#include <ssm/ssmcustomcommand.h>
-
-// ---------------------------------------------------------------------------
-// C++ destructor.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CSsmCustomCommandEnv* SysErrCmdTestsStub::CustomCommandEnvStubL( 
-                                                                     RFs& aRfs )
-    {
-    return CSsmCustomCommandEnv::NewL( aRfs );
-    }
-
-// End of file
--- a/startupservices/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/group/sanimctrl.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimctrl/group/sanimctrl.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -37,7 +37,7 @@
 
 APP_LAYER_SYSTEMINCLUDE // dependency to app layer (Profiles)
 
-LIBRARY         avkon.lib
+
 LIBRARY         centralrepository.lib
 LIBRARY         cone.lib
 LIBRARY         efsrv.lib
@@ -46,3 +46,5 @@
 LIBRARY         featmgr.lib
 LIBRARY         mediatorclient.lib
 LIBRARY         sanimengine.lib
+
+SMPSAFE
--- a/startupservices/startupanimation/sanimctrl/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimctrl/src/sanimstartupctrl.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimctrl/src/sanimstartupctrl.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007,2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -16,8 +16,9 @@
 */
 
 
-#include <aknappui.h>
-#include <aknsoundsystem.h>
+
+ #include <eikappui.h>
+
 #include <centralrepository.h>
 #include <featmgr.h>
 #include <MediatorDomainUIDs.h>
@@ -30,12 +31,12 @@
 #include "trace.h"
 
 const TInt KMinVolume( 0 );  /** Minimum allowed volume level. */
-const TInt KMaxVolume( 10 ); /** Maximum allowed volume level. */
+const TInt KMaxVolume( 10000 ); /** Maximum allowed volume level. */
 
 const TInt KDefaultRepeatCount( 1 ); /** Default repeat count for animation and tone. */
 const TInt KDefaultVolumeRamp( 0 );  /** Default volume ramp value in microseconds. */
 
-static const TInt KMediatorTimeout( 1000000 ); /** Default timeout for Mediator commands. */
+//static const TInt KMediatorTimeout( 1000000 ); /** Default timeout for Mediator commands. */
 
 // ======== LOCAL FUNCTIONS ========
 
@@ -197,7 +198,7 @@
         else if ( iCommandInitiator )
             {
             INFO_1( "Secondary display data: %d", iSyncCommand );
-
+		
             iClientStatus = &aStatus;
             iWaitingForSyncResponse = ETrue;
             TInt errorCode = iCommandInitiator->IssueCommand(
@@ -314,7 +315,7 @@
         {
         iWaitingForSyncResponse = EFalse;
         StartAnimation();
-        }
+       }
     }
 
 
@@ -349,21 +350,7 @@
         FeatureManager::FeatureSupported( KFeatureIdCoverDisplay );
     FeatureManager::UnInitializeLib();
 
-    if ( secondaryDisplaySupported )
-        {
-        iCommandInitiator = CMediatorCommandInitiator::NewL( this );
-        iCommandResponder = CMediatorCommandResponder::NewL( this );
-
-        TInt errorCode = iCommandResponder->RegisterCommand(
-            KMediatorSecondaryDisplayDomain,
-            SecondaryDisplay::KCatStartup,
-            SecondaryDisplay::ECmdStartupPhaseSkip,
-            TVersion( 0, 0, 0 ),
-            ECapabilitySwEvent,
-            KMediatorTimeout );
-        ERROR( errorCode, "Failed to register command ECmdStartupPhaseSkip with mediator" );
-        User::LeaveIfError( errorCode );
-        }
+   
 
     CSAnimCtrl::BaseConstructL( aRect, aContainer );
     }
@@ -504,7 +491,7 @@
         if ( iPlayDefaultBeep )
             {
             INFO( "Default startup beep requested" );
-
+            /*
             CAknAppUi* appUi = static_cast<CAknAppUi*>( iEikonEnv->EikAppUi() );
             if ( appUi )
                 {
@@ -512,6 +499,7 @@
 
                 appUi->KeySounds()->PlaySound( EAvkonSIDPowerOnTone );
                 }
+             */
             }
 
         iEngine->Start( *iClientStatus );
--- a/startupservices/startupanimation/sanimengine/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimengine/bwins/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimengine/eabi/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimengine/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimengine/group/sanimengine.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimengine/group/sanimengine.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -44,3 +44,5 @@
 LIBRARY         ecom.lib
 LIBRARY         euser.lib
 LIBRARY         fbscli.lib
+
+SMPSAFE
--- a/startupservices/startupanimation/sanimengine/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimengine/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimihlplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimihlplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimihlplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimihlplugin/group/sanimihlplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimihlplugin/group/sanimihlplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -45,3 +45,5 @@
 LIBRARY         euser.lib
 LIBRARY         ihl.lib
 LIBRARY         sanimengine.lib
+
+SMPSAFE
--- a/startupservices/startupanimation/sanimihlplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimihlplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimmmfplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimmmfplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimmmfplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimmmfplugin/group/sanimmmfplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimmmfplugin/group/sanimmmfplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -43,3 +43,5 @@
 LIBRARY         euser.lib
 LIBRARY         mediaclientaudio.lib
 LIBRARY         sanimengine.lib
+
+SMPSAFE
--- a/startupservices/startupanimation/sanimmmfplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimmmfplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimsvgplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimsvgplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimsvgplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimsvgplugin/group/sanimsvgplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/startupservices/startupanimation/sanimsvgplugin/group/sanimsvgplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -48,3 +48,5 @@
 LIBRARY         gdi.lib
 LIBRARY         sanimengine.lib
 LIBRARY         svgengine.lib
+
+SMPSAFE
--- a/startupservices/startupanimation/sanimsvgplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/startupservices/startupanimation/sanimsvgplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/BWINS/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/CenRep/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file sysresmonitoring/oodmonitor/conf/uiklaf.confml has changed
Binary file sysresmonitoring/oodmonitor/conf/uiklaf_101F8774.crml has changed
--- a/sysresmonitoring/oodmonitor/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/group/OODMonitor.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/group/OODMonitor.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -27,11 +27,12 @@
 VENDORID        VID_DEFAULT
 
 
+SYSTEMINCLUDE		/epoc32/include/mw/hb/hbwidgets
 USERINCLUDE     ../inc
 
 
-APP_LAYER_SYSTEMINCLUDE
-
+//APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
 
 SOURCEPATH      ../src
 SOURCE          lafshut.cpp
@@ -40,7 +41,7 @@
 LIBRARY         efsrv.lib
 LIBRARY         bafl.lib
 LIBRARY         ws32.lib
-LIBRARY         aknnotify.lib
+LIBRARY		HbWidgets.lib
 
 SOURCEPATH      ../resource
 START RESOURCE  lafmemorywatcher.rss
@@ -49,4 +50,7 @@
 LANGUAGE_IDS
 END
 
+
+SMPSAFE
 // End of file.
+
--- a/sysresmonitoring/oodmonitor/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/inc/Ood.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/inc/Ood.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -20,7 +20,7 @@
 #define LAFSHUT_H
 
 // SYSTEM INCLUDES
-
+#include "hbdevicemessageboxsymbian.h"
 // USER INCLUDES
 
 // CONSTANTS
@@ -116,7 +116,8 @@
         private:
             TMessageType    iMessageType;
             CMessageInfo*   iMessageInfo[4];
-            CAknGlobalNote* iQuery;
+        
+        
         };
 
     // ======================================================================
--- a/sysresmonitoring/oodmonitor/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/BWINS/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/EABI/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/group/OODMonitor.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/group/OODMonitor.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -26,11 +26,13 @@
 CAPABILITY      CAP_GENERAL_DLL
 VENDORID        VID_DEFAULT
 
+SYSTEMINCLUDE		/epoc32/include/mw/hb/hbwidgets
 USERINCLUDE     ../inc
 USERINCLUDE     ../../inc
 
 
-APP_LAYER_SYSTEMINCLUDE
+
+MW_LAYER_SYSTEMINCLUDE
 
 
 SOURCEPATH      ../src
@@ -45,13 +47,12 @@
 LIBRARY         efsrv.lib
 LIBRARY         bafl.lib
 LIBRARY         ws32.lib
-LIBRARY         aknnotify.lib
-LIBRARY         PlatformEnv.lib
+LIBRARY         platformenv.lib
 LIBRARY         disknotifyhandler.lib
 LIBRARY         commonengine.lib
 LIBRARY         cone.lib
-LIBRARY         avkon.lib
 LIBRARY 	centralrepository.lib
+LIBRARY		HbWidgets.lib
 
 SOURCEPATH      ../../resource
 START RESOURCE  LafMemoryWatcher.rss
@@ -67,4 +68,7 @@
 LANGUAGE_IDS
 END
 
+
+SMPSAFE
 // End of file.
+
--- a/sysresmonitoring/oodmonitor/oodmonitor2/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskglobalnote.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskglobalnote.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -22,7 +22,8 @@
 // SYSTEM INCLUDES
 #include <uiklaf/private/lafshut.h>
 #include <coemain.h>
-#include <AknGlobalNote.h>
+#include "hbdevicemessageboxsymbian.h"
+
 
 // USER INCLUDES
 
@@ -64,7 +65,6 @@
     private: // Data
         COutOfDiskMonitor*  iOutOfDiskMonitor; //uses
         RFs&                iFs;
-        CAknGlobalNote*     iQuery;
         RResourceFile       iOODResourceFile;
         TNoteInfo           iNoteInfo;
     };
--- a/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskmonitor.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskmonitor.h	Thu Jun 24 13:52:58 2010 +0100
@@ -90,6 +90,7 @@
         TInt                        iDefaultMassStorage;
         TInt                        iDefaultRomDrive;
         RResourceFile               iResourceFile;
+        TInt64                      iOODWarningThresholdMassMemory;
     };
 
 #endif // __OUTOFDISKMONITOR_H__
--- a/sysresmonitoring/oodmonitor/oodmonitor2/resource/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskglobalnote.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskglobalnote.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -18,16 +18,12 @@
 
 // SYSTEM INCLUDES
 #include <e32property.h>
-#include <AknGlobalNote.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
-#include <aknSDData.h>
-#include <avkon.rsg>
 #include <data_caging_path_literals.hrh>
 #include <driveinfo.h>
 #include <outofdiskmonitor.rsg>
 #include <bautils.h>                // BaflUtils
 #include <StringLoader.h>
-#include <aknnotewrappers.h>
+
 
 // USER INCLUDES
 #include "UiklafInternalCRKeys.h"
@@ -60,7 +56,6 @@
 COutOfDiskGlobalNote::~COutOfDiskGlobalNote()
     {
     TRACES("COutOfDiskGlobalNote::~COutOfDiskGlobalNote");
-    delete iQuery;
     iOODResourceFile.Close();
     Cancel(); // Cancel active object    
     TRACES("COutOfDiskGlobalNote::~COutOfDiskGlobalNote: End");
@@ -110,19 +105,15 @@
 void COutOfDiskGlobalNote::DisplayL(const TDesC& aMessage)
     {
     TRACES("COutOfDiskGlobalNote::DisplayL");
-    if (iNoteInfo.iNoteId > KErrNotFound)
-        {
-        CancelNoteL();
-        }
-    
-    if (!iQuery)
-        {
-        TRACES("COutOfDiskGlobalNote::COutOfDiskGlobalNote::DisplayL: Create iQuery");        
-        iQuery = CAknGlobalNote::NewL();
-        iQuery->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY);
-        }
-    iNoteInfo.iNoteId = iQuery->ShowNoteL(iStatus, EAknGlobalWarningNote, aMessage);
-    SetActive();
+       
+     TRACES("COutOfDiskGlobalNote::COutOfDiskGlobalNote::DisplayL: Create iQuery");        
+     CHbDeviceMessageBoxSymbian* globalNote = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
+     CleanupStack::PushL(globalNote);
+     globalNote->SetTextL(aMessage);
+     globalNote->SetTimeout(0);
+     globalNote->ExecL();
+     CleanupStack::PopAndDestroy(globalNote);
+     
     TRACES("COutOfDiskGlobalNote::DisplayL: End");
     }
 
@@ -143,8 +134,7 @@
 
     if (iOutOfDiskMonitor->GetGlobalNotesAllowed())
         {
-        TInt sdDialogId = 0;
-
+    
         TResourceReader resReader;
         HBufC8* str(NULL);
         CDesCArray* strings = new ( ELeave ) CDesCArrayFlat( 2 );
@@ -169,7 +159,6 @@
             
             if (aDrive == iOutOfDiskMonitor->GetDefaultPhoneMemory())
                 {
-                sdDialogId = EAknDiskWarnignNote;
                 str = iOODResourceFile.AllocReadLC(R_QTN_MEMLO_DEVICE_MEMORY_LOW);
                 resReader.SetBuffer(str);    
                 strings->AppendL( driveName );
@@ -177,7 +166,6 @@
             else if (driveStatus & DriveInfo::EDriveRemovable)
                 {
                 TRACES1("COutOfDiskGlobalNote::ShowGlobalQueryL: Warning note! volNameLength: %d", nameLength);
-                sdDialogId = EAknMMCWarningNote;
                 TBufC<KMaxFileName> name(volInfo.iName);
                 if (nameLength)
                     {
@@ -196,7 +184,6 @@
                 }
             else
                 {
-                sdDialogId = EAknDiskWarnignNote;
                 str = iOODResourceFile.AllocReadLC(R_QTN_MEMLO_MASS_STORAGE_MEMORY_LOW);
                 resReader.SetBuffer(str);    
                 strings->AppendL( driveName );                
@@ -207,14 +194,12 @@
             TRACES1("COutOfDiskGlobalNote::ShowGlobalQueryL: Critical note! Drive: %c", aDrive+'A');
             if (aDrive == iOutOfDiskMonitor->GetDefaultPhoneMemory())
                 {
-                sdDialogId = EAknDiskFullNote;
                 str = iOODResourceFile.AllocReadLC(R_QTN_MEMLO_DEVICE_MEMORY_FULL);
                 resReader.SetBuffer(str);    
                 strings->AppendL( driveName );                
                 }                
             else if (driveStatus & DriveInfo::EDriveRemovable)
                 {
-                sdDialogId = EAknMMCFullNote;
                 TBufC<KMaxFileName> name(volInfo.iName);
                 if (nameLength)
                     {
@@ -233,27 +218,25 @@
                 }
             else
                 {
-                sdDialogId = EAknDiskFullNote;
                 str = iOODResourceFile.AllocReadLC(R_QTN_MEMLO_MASS_STORAGE_FULL);
                 resReader.SetBuffer(str);
                 strings->AppendL( driveName );                
                 }
             }
         resReader.SetBuffer(str);
-	    HBufC* message( FormatStringL(resReader.ReadHBufCL()->Des(), *strings));
-	    TRACES1("COutOfDiskMonitor::ShowGlobalQueryL: txt: %S",message);
+	      HBufC* resHandle = resReader.ReadHBufCL();
+        CleanupStack::PushL( resHandle );
+        HBufC* message(FormatStringL(resHandle->Des(),*strings));
+        CleanupStack::PushL( message );
+	      TRACES1("COutOfDiskMonitor::ShowGlobalQueryL: txt: %S",message);
         DisplayL(message->Des());
 
-		TBuf8<2> sdDriveName;
-		sdDriveName.Append(aDrive+'A');
-		sdDriveName.Append(_L8(":"));	
-        CAknSDData* sd = CAknSDData::NewL(KAknSecondaryDisplayCategory, sdDialogId, sdDriveName);
-        iQuery->SetSecondaryDisplayData(sd);     
-
         iNoteInfo.iStatus = aStatus;
         iNoteInfo.iDrive = aDrive;        
+        CleanupStack::PopAndDestroy(message);
+        CleanupStack::PopAndDestroy(resHandle);
         CleanupStack::PopAndDestroy( str );
-        CleanupStack::PopAndDestroy( strings );
+        CleanupStack::PopAndDestroy( strings ); 
         iOutOfDiskMonitor->SetAsDisplayedL(aDrive, aStatus);
         }
     TRACES("COutOfDiskGlobalNote::ShowGlobalQueryL: End");
@@ -341,10 +324,6 @@
     {
     TRACES("COutOfDiskGlobalNote::CancelNoteL");
     
-    if (iNoteInfo.iNoteId > KErrNotFound)
-        {    
-        iQuery->CancelNoteL(iNoteInfo.iNoteId);
-        }
     Cancel();
     TRACES("COutOfDiskGlobalNote::CancelNoteL: End");    
     }    
--- a/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskmonitor.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskmonitor.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -107,18 +107,22 @@
     CRepository* repository( NULL );
     TInt warningThreshold(0);
     TInt criticalThreshold(0);
+    TInt warningThresholdMassMemory(0);
     TRAPD( err, repository = CRepository::NewL( KCRUidUiklaf ) );
     if ( err == KErrNone )
         {
         err = repository->Get(KUikOODDiskFreeSpaceWarningNoteLevel, warningThreshold);
         err = repository->Get(KUikOODDiskCriticalThreshold, criticalThreshold);
+        err = repository->Get(KUikOODDiskFreeSpaceWarningNoteLevelMassMemory, warningThresholdMassMemory);
         }
     delete repository;
     iOODWarningThreshold = warningThreshold;
     iOODCriticalThreshold = criticalThreshold;
+    iOODWarningThresholdMassMemory = warningThresholdMassMemory;
     
-	TRACES1("COutOfDiskMonitor::ConstructL: Warning threshold: %d percent",iOODWarningThreshold);
+	TRACES1("COutOfDiskMonitor::ConstructL: Warning threshold Phone Memory: %d percent",iOODWarningThreshold);
     TRACES1("COutOfDiskMonitor::ConstructL: Critical threshold: %ld bytes",iOODCriticalThreshold);
+    TRACES1("COutOfDiskMonitor::ConstructL: Warning threshold Mass Memory: %ld bytes",iOODWarningThresholdMassMemory);
     
     iOutOfDiskNotifyObserver = COutOfDiskNotifyObserver::NewL( this, iFs );
     TRACES("COutOfDiskMonitor::ConstructL: End");
@@ -208,8 +212,24 @@
         TRACES1("COutOfDiskMonitor::GetThreshold: Volume size: %ld",volSize);		
 		if ( ret == KErrNone )
 			{
-			TRACES1("COutOfDiskMonitor::GetThreshold: Warning threshold: Used disk space %d percent",iOODWarningThreshold);
-			threshold = ((volSize*(100-iOODWarningThreshold))/100);		
+			if(aDrive == EDriveC)
+			    {
+                TRACES1("COutOfDiskMonitor::GetThreshold: Warning threshold Phone Memory: Used disk space %d percent",iOODWarningThreshold);
+                threshold = ((volSize*(100-iOODWarningThreshold))/100);
+			    }
+			else
+			    {
+			    if(iOODWarningThresholdMassMemory < volSize )
+                    {
+                    TRACES1("COutOfDiskMonitor::GetThreshold: Warning threshold Mass Memory: %ld bytes",iOODWarningThresholdMassMemory);
+                    threshold = iOODWarningThresholdMassMemory;
+                    }
+                else
+                    {
+                    TRACES1("COutOfDiskMonitor::GetThreshold: Warning threshold Phone Memory: Used disk space %d percent",iOODWarningThreshold);
+                    threshold = ((volSize*(100-iOODWarningThreshold))/100);                                
+                    }
+			    }
 			}
         }
     else if (aLevel == DISK_SPACE_CRITICAL)
--- a/sysresmonitoring/oodmonitor/resource/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/src/lafshut.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oodmonitor/src/lafshut.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -24,10 +24,6 @@
 #include <bautils.h>
 #include <e32property.h>
 #include <UikonInternalPSKeys.h>
-#include <aknglobalnote.h>
-#include <secondarydisplay/aknsecondarydisplaydefs.h>
-#include <aknsddata.h>
-#include <avkon.rsg>
 #include <data_caging_path_literals.hrh>
 #include <coreapplicationuisdomainpskeys.h>
 
@@ -726,7 +722,6 @@
 CLafShutdownManager::CGlobalQueryActive::~CGlobalQueryActive()
     {
     TRACES("CLafShutdownManager::CGlobalQueryActive::~CGlobalQueryActive");        
-    delete iQuery;
     delete iMessageInfo[ECritical];
     delete iMessageInfo[EWarning];
     delete iMessageInfo[EWarningMMC];
@@ -801,50 +796,21 @@
         return;
         }
 
-    if (!iQuery)
-        {
-        iQuery = CAknGlobalNote::NewL();
-        iQuery->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY);        
-        }
-
-    if (aType != ECallBack)
+      if (aType != ECallBack)
         {
         iMessageType = aType;
         }
 
     CleanupL();
 
-    if (iMessageType != ENone && (iMessageInfo[iMessageType]->iNoteId == KErrNotFound || aForcedNote))
-        {
-        TInt dialogId = 0;
-        switch(iMessageType)
-            {
-        case EWarning:
-            dialogId = EAknDiskWarnignNote;
-            break;
-        case ECritical:
-            dialogId = EAknDiskFullNote;
-            break;
-        case ECriticalMMC:    
-            dialogId = EAknMMCFullNote;
-            break;
-        default:
-            dialogId = EAknMMCWarningNote;
-            break;            
-            }
+          
+        CHbDeviceMessageBoxSymbian* globalNote = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
+        CleanupStack::PushL(globalNote);
+        globalNote->SetTextL((iMessageInfo[iMessageType]->iMessage)->Des());
+        globalNote->SetTimeoutL(0);
+        globalNote->ExecL();
+        CleanupStack::PopAndDestroy(globalNote);
         
-        CAknSDData* sd = CAknSDData::NewL(KAknSecondaryDisplayCategory, dialogId, KNullDesC8);
-        iQuery->SetSecondaryDisplayData(sd);
-        
-        TInt noteid = iQuery->ShowNoteL(EAknGlobalWarningNote,
-                                        (iMessageInfo[iMessageType]->iMessage)->Des());
-                                        
-        if (noteid != KErrNotFound) // Note was added to queue successfully.
-            {
-            iMessageInfo[iMessageType]->iNoteId = noteid;
-            }
-        }
-
     iMessageType = ENone;
     TRACES("CLafShutdownManager::CGlobalQueryActive::DisplayL: End");
     }
@@ -877,11 +843,7 @@
             break;
             }
 
-        if (cancelNoteId != KErrNotFound && aCancel)
-            {
-            iQuery->CancelNoteL(cancelNoteId);
-            }
-        }
+         }
     TRACES("CLafShutdownManager::CGlobalQueryActive::CleanupL: End");
     }
 
--- a/sysresmonitoring/oommonitor/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -13,4 +13,8 @@
 	?SetMemoryMonitorTls@@YAXPAVCMemoryMonitor@@@Z @ 12 NONAME ; void SetMemoryMonitorTls(class CMemoryMonitor *)
 	?ThisAppIsNotExiting@ROomMonitorSession@@QAEXH@Z @ 13 NONAME ; void ROomMonitorSession::ThisAppIsNotExiting(int)
 	?WsSession@COomMonitorPlugin@@QAEAAVRWsSession@@XZ @ 14 NONAME ; class RWsSession & COomMonitorPlugin::WsSession(void)
+	?FreeRam@COomMonitorPluginV2@@UAEXXZ @ 15 NONAME ; void COomMonitorPluginV2::FreeRam(void)
+	?RequestOptionalRam@ROomMonitorSession@@QAEHHHHAAH@Z @ 16 NONAME ; int ROomMonitorSession::RequestOptionalRam(int, int, int, int &)
+	?RequestOptionalRam@ROomMonitorSession@@QAEXHHHAAVTRequestStatus@@@Z @ 17 NONAME ; void ROomMonitorSession::RequestOptionalRam(int, int, int, class TRequestStatus &)
+	?SetOomPriority@ROomMonitorSession@@QAEXW4TOomPriority@1@@Z @ 18 NONAME ; void ROomMonitorSession::SetOomPriority(enum ROomMonitorSession::TOomPriority)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/data/oomconfig.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,181 @@
+<!--
+ Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+-->
+
+
+<!-- This is the configuration file for the new OOM Monitor. This configuration file
+defines an OOM policy where RAM is released in the following order.
+
+1. Empty server caches (skin server cache, icon server cache, MDS cache, TFX server cache)
+2. Close applications that have not been used for more than 12 hours (including Browser and high priority applications)
+3. If Browser is in the background, empty Browser cache and close unused windows 
+4. Close always-on applications in the following order: Clock, Calendar, Messaging,  Contacts, Logs, Camera
+5. Close applications that have not been used for more than 15 minutes (including Browser but excluding high priority applications)
+6. Close Matrix UI if it has not been used for more than 15 seconds and continue closing WRT widgets immediately.
+7. Close WRT widgets
+8. Close other background applications that have been used within 15 minutes except Browser and high priority applications
+9. Close high priority applications
+10. If Browser is in the foreground, empty Browser cache and close unused windows 
+11. Close Browser in the background when it has been used within 15 minutes
+-->
+<oom_config>
+
+<!-- 	Low RAM and good RAM thresholds are defined here in kilobytes.
+	The max_app_close_batch indicates how many applications can be closed in parallel.
+	The value 1 means that applications are not closed in parallel.
+	default_wait_after_plugin defines how long is waited (in milliseconds) after
+	an OOM plugin is called and before the free RAM is checked to determine if more
+	actions are needed. This value is meaningful only when "check" or "estimate" sync mode is
+	used with plugins.
+-->
+	<global_settings low_ram_threshold="3637" good_ram_threshold="4900" swap_usage_monitored="true" low_swap_threshold="15000" good_swap_threshold="25000" max_app_close_batch="3" default_wait_after_plugin="10" max_app_exit_time="2000">
+	</global_settings>
+
+<!--	Application specific low RAM and good RAM thresholds are defined here. The higher values of
+the low and good thresholds are defined to avoid OOM errors with these applications when the default
+threshold values are used.
+-->
+	<app_specific_thresholds>
+		<app uid="10008d39" low_ram_threshold="8637" good_ram_threshold="9900"></app> <!-- Browser -->
+		<app uid="20001f63" low_ram_threshold="4637" good_ram_threshold="5900"></app> <!-- Maps -->
+		<app uid="101f857a" low_ram_threshold="5637" good_ram_threshold="6900"></app> <!-- camera -->
+		<app uid="10282822" low_ram_threshold="5637" good_ram_threshold="6900"></app> <!-- Widget UI -->
+		<app uid="200009ee" low_ram_threshold="8637" good_ram_threshold="9900"></app> <!-- Photos -->
+		<app uid="20007b39" low_ram_threshold="10637" good_ram_threshold="11900"></app> <!-- NGage -->
+	</app_specific_thresholds>
+
+<!--	The priority of closing each application is defined here.
+-->
+	<app_close_settings>
+
+<!--		The uid DEFAULT_APP refers to all applications, which priority is not specifically
+		defined in the conf file.
+-->
+		<close_app uid="DEFAULT_APP" priority="80" sync_mode="check">
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+<!--		The uid BUSY_APP refers to applications, which have set the OOM priority BUSY
+		by using the OOM Monitor API SetOomPriority(). The priority NEVER_CLOSE
+		means that the application is not closed at all.
+-->
+		<close_app uid="BUSY_APP" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+
+<!--		The uid HIGH_PRIORITY_APP refers to applications, which have set the OOM priority HIGH
+		by using the OOM Monitor API SetOomPriority().
+-->
+		<close_app uid="HIGH_PRIORITY_APP" priority="90" sync_mode="check">
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10005903" priority="80" sync_mode="check"> <!-- Clock -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="40"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10005901" priority="80" sync_mode="check"> <!-- Calendar -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="41"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="100058c5" priority="80" sync_mode="check">  <!-- Messaging -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="42"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f4cce" priority="80" sync_mode="check"> <!-- Contacts -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="43"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f4cd5" priority="80" sync_mode="check"> <!-- Logs -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="44"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f857a" priority="80" sync_mode="check"> <!-- Camcorder -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="45"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10008d39" priority="110" sync_mode="check"> <!-- Browser -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+		
+		<!--CWRTWidget.exe -->		
+		<close_app uid="200267C0" priority="100" sync_mode="check"> <!-- Ovi Widget UI -->
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget.exe  End -->
+		<!--CWRTWidget2.exe -->		
+		<close_app uid="200267D6" priority="80" sync_mode="check"> 
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget2.exe  End -->
+<!--		Widget UI plugin handles the closing of widgets. Widget UI application is not closed.
+-->
+		<close_app uid="10282822" priority="NEVER_CLOSE" sync_mode="check"> </close_app> <!-- Widget UI --> 
+		<close_app uid="101f4cd2" priority="NEVER_CLOSE" sync_mode="continue">
+			<app_close_idle_priority idle_time="15" priority="60"></app_close_idle_priority>
+			<foreground_app_priority if_foreground_app_id="10207218" priority="NEVER_CLOSE"></foreground_app_priority> <!-- Fast swap --> 
+		</close_app> <!-- Matrix UI -->
+		<close_app uid="10207a89" priority="NEVER_CLOSE" sync_mode="check">
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app> <!-- Radio -->
+	</app_close_settings>
+<!--	The priority of executing each system plugin is defined here.
+	System plugin is a plugin, which priority is not related to any application.
+-->
+	<system_plugin_settings>
+<!--		The uid DEFAULT_PLUGIN refers to all plugins, which priority is not specificly
+		defined in the conf file.
+-->
+		<system_plugin uid="DEFAULT_PLUGIN" priority="10" sync_mode="continue"></system_plugin>
+		<system_plugin uid="10207140" priority="10" sync_mode="continue"></system_plugin> <!-- AKNSKINSOOMPLUGIN -->
+		<system_plugin uid="10281fe6" priority="10" sync_mode="continue"></system_plugin> <!-- AKNICONOOMPLUGIN -->
+		<system_plugin uid="10282e4f" priority="10" sync_mode="continue"></system_plugin> <!-- TFXSRVOOMPLUGIN -->
+		<system_plugin uid="2001b2c6" priority="10" sync_mode="continue"></system_plugin> <!-- MDSOOMPLUGIN -->
+	</system_plugin_settings>
+<!--	The priority of executing each application plugin is defined here.
+	Application plugin is a plugin, which priority depends on the target application.
+	The target application must be defined for each application plugin.
+	By default all plugins are system plugins unless specifically defined as application
+	plugin in this section.
+-->
+	<app_plugin_settings>
+		<app_plugin uid="10281f93" target_app_id="10008d39" priority="30" wait="100" sync_mode="check"> <!-- WEBENGINEMEMORYPLUGIN, target app Browser -->
+			<plugin_foreground_app_priority target_app_id="10008d39" priority="100"></plugin_foreground_app_priority>
+		</app_plugin>
+
+<!--	Widget memory plugin has very long plugin wait time because we don't want to unnecessarily
+	close any other applications after closing it. We call Widget memory plugin only if
+	Widget UI application is running in the background.
+-->
+		<app_plugin uid="10282855" target_app_id="10282822" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> <!-- WIDGETMEMORYPLUGIN, target app Widget UI -->
+			<plugin_foreground_app_priority target_app_id="10282822" priority="NEVER_CLOSE"></plugin_foreground_app_priority> <!-- target app Widget UI -->
+		</app_plugin>
+	<!--CWRTWidget.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267D3" target_app_id="200267C0" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267C0" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget.exe  -  Plugin   End-->		
+	<!--CWRTWidget2.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267DB" target_app_id="200267D6" priority="50" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267D6" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget2.exe  -  Plugin   End-->		
+	</app_plugin_settings>
+</oom_config>
--- a/sysresmonitoring/oommonitor/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/eabi/oommonitorU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/eabi/oommonitorU.DEF	Thu Jun 24 13:52:58 2010 +0100
@@ -17,4 +17,10 @@
 	_ZN20CAppOomMonitorPlugin4NewLE4TUid @ 16 NONAME
 	_ZTI17COomMonitorPlugin @ 17 NONAME ; #<TI>#
 	_ZTV17COomMonitorPlugin @ 18 NONAME ; #<VT>#
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiRi @ 19 NONAME
+	_ZN19COomMonitorPluginV27FreeRamEv @ 20 NONAME
+	_ZTI19COomMonitorPluginV2 @ 21 NONAME ; #<TI>#
+	_ZTV19COomMonitorPluginV2 @ 22 NONAME ; #<VT>#
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiR14TRequestStatus @ 23 NONAME
+	_ZN18ROomMonitorSession14SetOomPriorityENS_12TOomPriorityE @ 24 NONAME
 
--- a/sysresmonitoring/oommonitor/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -18,16 +18,15 @@
 
 #include <platform_paths.hrh>
 
+PRJ_PLATFORMS
+DEFAULT
+
 PRJ_EXPORTS
-../rom/oommonitor.iby             CORE_MW_LAYER_IBY_EXPORT_PATH(oommonitor.iby)
+../rom/oommonitor.iby  CORE_MW_LAYER_IBY_EXPORT_PATH(oommonitor.iby)
+../data/oomconfig.xml  /epoc32/RELEASE/winscw/UDEB/Z/private/10207218/oomconfig.xml
+../data/oomconfig.xml  /epoc32/RELEASE/winscw/UREL/Z/private/10207218/oomconfig.xml
+../data/oomconfig.xml  /epoc32/data/Z/private/10207218/oomconfig.xml
 
 PRJ_MMPFILES
-
-#ifndef TOOLS
-
 oommonitor.mmp
-
-#endif
-
-PRJ_TESTMMPFILES
-// ../internal/oomtestplugin/oomtestplugin.mmp
+oommonitorlib.mmp
--- a/sysresmonitoring/oommonitor/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/group/oommonitor.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/group/oommonitor.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -18,10 +18,22 @@
 
 #include <platform_paths.hrh>
 
+//uncomment both of these macros to use the CLIENT_REQUEST_QUEUE
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+
 TARGET          oommonitor.dll
+
 TARGETTYPE      dll
 UID             0x1000008D 0x10282DBF
 
+NOEXPORTLIBRARY
+#ifdef WINS
+DEFFILE         ../bwins/oommonitor.DEF
+#else
+DEFFILE         ../eabi/oommonitor.DEF
+#endif
+
 CAPABILITY      CAP_GENERAL_DLL
 VENDORID        VID_DEFAULT
 
@@ -32,9 +44,38 @@
 MW_LAYER_SYSTEMINCLUDE
 
 SOURCEPATH      ../src
+SOURCE          oomIdletimerule.cpp
+SOURCE          oomaction.cpp
+SOURCE          oomactionconfig.cpp
+SOURCE          oomactionlist.cpp
+SOURCE          oomactionref.cpp
+SOURCE          oomappclosetimer.cpp
+SOURCE          oomappclosewatcher.cpp
+SOURCE          oomapplicationconfig.cpp
+SOURCE          oomcloseapp.cpp
+SOURCE          oomcloseappconfig.cpp
+SOURCE          oomconfig.cpp
+SOURCE          oomconfigparser.cpp
+SOURCE          oomforegroundrule.cpp
+SOURCE          oomglobalconfig.cpp
+SOURCE          oomlog.cpp
+SOURCE          oommemorymonitor.cpp
+SOURCE          oommemorymonitorserver.cpp
+SOURCE          oommemorymonitorsession.cpp
+SOURCE          oommonitor.cpp
 SOURCE          oommonitorplugin.cpp
 SOURCE          oommonitorsession.cpp
-SOURCE	        oommonitor.cpp
+SOURCE          oomoutofmemorywatcher.cpp
+SOURCE          oompanic.cpp
+SOURCE          oompluginwaiter.cpp
+SOURCE          oomrunplugin.cpp
+SOURCE          oomrunpluginconfig.cpp
+SOURCE          oomsubscribehelper.cpp
+SOURCE          oomwindowgrouplist.cpp
+SOURCE          oomwserveventreceiver.cpp
+#ifdef CLIENT_REQUEST_QUEUE
+SOURCE          oomclientrequestqueue.cpp
+#endif
 
 LIBRARY         euser.lib
 LIBRARY         apparc.lib
@@ -46,3 +87,8 @@
 LIBRARY         ecom.lib
 LIBRARY         hal.lib
 LIBRARY         efsrv.lib
+LIBRARY         xmlframework.lib
+LIBRARY         cone.lib
+#ifdef _DEBUG
+LIBRARY         flogger.lib
+#endif 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/group/oommonitorlib.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file
+*
+*/
+
+TARGET          oommonitor.lib
+TARGETTYPE      IMPLIB
+UID             0x1000008D 0x10282DBF
+
+#ifdef WINS
+ DEFFILE         ../bwins/oommonitor.DEF
+#else
+ DEFFILE         ../eabi/oommonitor.DEF
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/OomTraces.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,487 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes some common defines used in the OOM monitor app.
+*
+*/
+
+
+#ifndef OOMTRACES_H
+#define OOMTRACES_H
+
+#include "traceconfiguration.hrh"
+#include "tracedefs.h"
+
+#ifdef TRACE_INTO_FILE
+#include <flogger.h> // RFileLogger
+#else
+#include <e32debug.h> // RDebug
+#endif
+
+//-----------------------------------------------------------------------------
+// Constants
+//-----------------------------------------------------------------------------
+//
+
+/**
+* Prefix error trace
+*/
+#define _PREFIX_ERROR( aMsg ) _PREFIX_TRACE( "[ERROR: %d]: " L##aMsg )
+
+/**
+* Prefix info trace.
+*/
+#define _PREFIX_INFO( aMsg ) _PREFIX_TRACE( "[INFO]: " L##aMsg )
+
+/**
+* Define needed directories if TRACE_INTO_FILE macro in use
+*/
+#ifdef TRACE_INTO_FILE
+
+    _LIT( KDir, "oommonitor2" );
+    _LIT( KFile, "oommonitor2_log.txt" );
+    _LIT( KFullPath, "c:\\logs\\oommonitor2\\" );
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Error trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef ERROR_TRACE
+
+    /**
+    * Error trace definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+
+        #define ERROR( aErr, aMsg )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                    _PREFIX_ERROR( aMsg ), aErr );\
+                }\
+            }
+        #define ERROR_1( aErr, aMsg, aP1 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                    _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+                }\
+            }
+        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                    _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+                }\
+            }
+        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                    _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+                }\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define ERROR( aErr, aMsg )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr );\
+                }\
+            }
+        #define ERROR_1( aErr, aMsg, aP1 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+                }\
+            }
+        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+                }\
+            }
+        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+                }\
+            }
+
+    #endif//TRACE_INTO_FILE
+
+    #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg )
+    #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 )
+    #define ERROR_GEN_2( aMsg, aP1, aP2 ) ERROR_2( KErrGeneral, aMsg, aP1, aP2 )
+    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 ) ERROR_3( KErrGeneral, aMsg, aP1, aP3 )
+
+    #define ERROR_PARAM(_p) _p
+
+    #define TRAPD_ERR( aErr, aStmt ) TRAPD( aErr, aStmt )
+    #define TRAP_ERR( aErr, aStmt ) TRAP( aErr, aStmt )
+
+    #define TRAP_AND_LEAVE(_s,_t) \
+        { TRAPD(_e,_s); ERROR(_e,_t); User::LeaveIfError(_e); }
+
+#else//ERROR_TRACE not defined
+
+    #define ERROR( aErr, aMsg )
+    #define ERROR_1( aErr, aMsg, aP1 )
+    #define ERROR_2( aErr, aMsg, aP1, aP2 )
+    #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )
+    #define ERROR_GEN( aMsg )
+    #define ERROR_GEN_1( aMsg, aP1 )
+    #define ERROR_GEN_2( aMsg, aP1, aP2 )
+    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 )
+
+    #define ERROR_PARAM(_p)
+
+    #define TRAPD_ERR( aErr, aStmt ) TRAP_IGNORE( aStmt )
+    #define TRAP_ERR( aErr, aStmt )  TRAP_IGNORE( aStmt )
+
+    #define TRAP_AND_LEAVE(_s,_t) { _s; }
+
+#endif//ERROR_TRACE
+
+//-----------------------------------------------------------------------------
+// Info trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef INFO_TRACE
+
+    /**
+    * Info log message definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+
+        #define TRACES( aMsg )\
+            {\
+            RFileLogger::Write( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ) );\
+            }
+        #define TRACES1( aMsg, aP1 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ), aP1 );\
+            }
+        #define TRACES2( aMsg, aP1, aP2 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ), aP1, aP2 );\
+            }
+        #define TRACES3( aMsg, aP1, aP2, aP3 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+            }
+        #define TRACES4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+            }
+        #define TRACES5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, \
+                _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define TRACES( aMsg )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ) );\
+            }
+        #define TRACES1( aMsg, aP1 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1 );\
+            }
+        #define TRACES2( aMsg, aP1, aP2 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2 );\
+            }
+        #define TRACES3( aMsg, aP1, aP2, aP3 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+            }
+        #define TRACES4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+            }
+        #define TRACES5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
+            }
+
+    #endif//TRACE_INTO_FILE
+
+    #define TRACES_PARAM( aParam ) aParam
+
+#else//INFO_TRACE not defined
+
+    #define TRACES( aMsg )
+    #define TRACES1( aMsg, aP1 )
+    #define TRACES2( aMsg, aP1, aP2 )
+    #define TRACES3( aMsg, aP1, aP2, aP3 )
+    #define TRACES4( aMsg, aP1, aP2, aP3, aP4 )
+    #define TRACES5( aMsg, aP1, aP2, aP3, aP4, aP5 )
+    #define TRACES_PARAM( aParam )
+
+#endif//INFO_TRACE
+
+//-----------------------------------------------------------------------------
+// Trace current client thread name and process id
+//-----------------------------------------------------------------------------
+//
+#ifdef CLIENT_TRACE
+
+    #define CLIENT( aMessage )\
+        {\
+        RThread thread;\
+        TInt err = aMessage.Client( thread );\
+        if( err == KErrNone )\
+            {\
+            RProcess process;\
+            err = thread.Process( process );\
+            if( err == KErrNone )\
+                {\
+                TPtrC thredName( thread.Name() );\
+                TUid processUid( process.SecureId() );\
+                TRACES2( "Current client process UID: [%x], thread name: [%S]",\
+                    processUid,\
+                    &thredName );\
+                }\
+            process.Close();\
+            }\
+        thread.Close();\
+        }
+
+#else
+
+    #define CLIENT( aMessage )
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Function trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef FUNC_TRACE
+
+    #include <e32base.h> // TCleanupItem
+
+    /**
+    * Function logging definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+
+        #define FUNC( aMsg, aP1 )\
+            {\
+            TPtrC8 trace( _S8( aMsg ) );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, trace, aP1 );\
+            }\
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define FUNC( aMsg, aP1 )\
+            {\
+            RDebug::Printf( aMsg, aP1 );\
+            }\
+
+    #endif//TRACE_INTO_FILE
+
+    /**
+    * Function trace helper class.
+    *
+    * NOTE:
+    * LC -methods cannot be trapped. Therefore if LC -method leaves
+    * END trace is used instead of LEAVE trace.
+    * If you have an idea how to round this problem please tell.
+    */
+    _LIT8( KFuncNameTerminator, "(" );
+    _LIT8( KFuncLeavePatternL, "L" );
+    class TFuncLog
+        {
+        public:
+            static void Cleanup( TAny* aPtr )
+                {
+                TFuncLog* self = static_cast< TFuncLog* >( aPtr );
+                self->iLeft = ETrue;
+                FUNC( _PREFIX_CHAR("%S-LEAVE"), &self->iFunc ); // Leave detected
+                }
+            inline TFuncLog( const char* aFunc ) :
+                    iFunc( aFunc ? _S8( aFunc ) : _S8("") ),
+                    iLeft( EFalse ),
+                    iCleanupItem( Cleanup, this ),
+                    iCanLeave( EFalse )
+                {
+                TInt pos( iFunc.Find( KFuncNameTerminator ) );
+                if( pos != KErrNotFound )
+                    {
+                    iFunc.Set( iFunc.Left( pos ) );
+                    iCanLeave = !iFunc.Right(
+                        KFuncLeavePatternL().Length() ).Compare( KFuncLeavePatternL );
+                    if ( iCanLeave )
+                        {
+                        CleanupStack::PushL( iCleanupItem ); // Ignore warnings
+                        }
+                    }
+                FUNC( _PREFIX_CHAR("%S-START"), &iFunc );
+                }
+
+            inline ~TFuncLog()
+                {
+                if ( !iLeft )
+                    {
+                    if ( iCanLeave )
+                        {
+                        CleanupStack::Pop( this ); // Pop the cleanup item
+                        }
+                    FUNC( _PREFIX_CHAR("%S-END"), &iFunc ); // Normally finished
+                    }
+                }
+
+        private: // Data
+            TPtrC8 iFunc;
+            TBool iLeft;
+            TCleanupItem iCleanupItem;
+            TBool iCanLeave;
+        };
+    #define FUNC_LOG TFuncLog _fl( __PRETTY_FUNCTION__ );
+
+#else//FUNC_TRACE not defined
+
+    #define FUNC_LOG
+
+#endif//FUNC_TRACE
+
+//-----------------------------------------------------------------------------
+// Timestamp trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef TIMESTAMP_TRACE
+
+    #define PREFIX_TIMESTAMP( aCaption ) _PREFIX_TRACE_2("[TIMESTAMP] (%d:%02d:%02d.%06d us) ",aCaption)
+    #define CURRENT_TIME( aDt ) TDateTime aDt; { TTime t; t.HomeTime(); aDt = t.DateTime(); }
+    #define EXTRACT_TIME( aDt ) aDt.Hour(), aDt.Minute(), aDt.Second(), aDt.MicroSecond()
+
+    #ifdef TRACE_INTO_FILE
+
+        #define TIMESTAMP( aCaption )\
+            {\
+            CURRENT_TIME( dt );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+                PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ) );\
+            }
+
+        #define TIMESTAMP_1( aCaption, aP1 )\
+            {\
+            CURRENT_TIME( dt );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+                PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1 );\
+            }
+
+        #define TIMESTAMP_2( aCaption, aP1, aP2 )\
+            {\
+            CURRENT_TIME( dt );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+                PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1,aP2 );\
+            }
+
+        #define TIMESTAMP_3( aCaption, aP1, aP2, aP3 )\
+            {\
+            CURRENT_TIME( dt );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+                PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1,aP2,aP3 );\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define TIMESTAMP( aCaption )\
+            {\
+            CURRENT_TIME( dt );\
+            RDebug::Print( PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ) );\
+            }
+
+        #define TIMESTAMP_1( aCaption, aP1 )\
+            {\
+            CURRENT_TIME( dt );\
+            RDebug::Print( PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1 );\
+            }
+
+        #define TIMESTAMP_2( aCaption, aP1, aP2 )\
+            {\
+            CURRENT_TIME( dt );\
+            RDebug::Print( PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1,aP2 );\
+            }
+
+        #define TIMESTAMP_3( aCaption, aP1, aP2, aP3 )\
+            {\
+            CURRENT_TIME( dt );\
+            RDebug::Print( PREFIX_TIMESTAMP(aCaption),EXTRACT_TIME( dt ),aP1,aP2,aP3 );\
+            }
+
+    #endif//TRACE_INTO_FILE
+
+#else//TIMESTAMP_TRACE not defined
+
+    #define TIMESTAMP( aCaption )
+    #define TIMESTAMP_1( aCaption, aP1 )
+    #define TIMESTAMP_2( aCaption, aP1, aP2 )
+    #define TIMESTAMP_3( aCaption, aP1, aP2, aP3 )
+
+#endif//TIMESTAMP_TRACE
+
+#ifdef _DEBUG
+
+    #include <e32debug.h> // RDebug
+
+    static void Panic( const TDesC8& aFileName, const TInt aLineNum )
+        {
+        TPath name;
+        name.Copy( aFileName );
+        RDebug::Print( _L( "Assertion failed in file=%S, line=%d" ), &name, aLineNum );
+        User::Invariant();
+        }
+
+    #define ASSERT_ALWAYS_TRACE Panic( _L8(__FILE__), __LINE__ );
+    #define ASSERT_TRACE( _s ) if ( !( _s ) ) { ASSERT_ALWAYS_TRACE; }
+
+#else // _DEBUG
+
+    #define ASSERT_ALWAYS_TRACE
+    #define ASSERT_TRACE( _s )
+
+#endif // _DEBUG
+
+#define TRACE_MATRIX( aMsg, aMatrix ) \
+    TRACES( aMsg ); \
+    TRACES( "------------------------------------------------" ); \
+    TRACES3( "       [%f %f %f]", (TReal)(aMatrix)[0], (TReal)(aMatrix)[1], (TReal)(aMatrix)[2] ); \
+    TRACES3( "Matrix [%f %f %f]", (TReal)(aMatrix)[3], (TReal)(aMatrix)[4], (TReal)(aMatrix)[5] ); \
+    TRACES3( "       [%f %f %f]", (TReal)(aMatrix)[6], (TReal)(aMatrix)[7], (TReal)(aMatrix)[8] ); \
+    TRACES( "------------------------------------------------" );
+
+#endif      // OOMTRACES_H
+            
+// End of File
--- a/sysresmonitoring/oommonitor/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomaction.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMACTION_H_
+#define OOMACTION_H_
+
+#include <e32base.h>
+
+class MOomActionObserver;
+
+/*
+ * The base class for all OOM actions (i.e. close application or run OOM plug-in).
+ * 
+ * A base class is used because both types of action have common aspects, specifically:
+ *  - They are prioritised according to application idle time
+ *  - They need to be prioritised against each other
+ *  - For each action it is possible to either continue immediately or to wait for completion
+ *  
+ * @lib oommonitor.lib
+ * @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomAction) : public CBase
+    {
+public:
+
+    virtual ~COomAction();
+    
+    /**
+     * Activate the OOM action
+     *
+     * @since S60 5.0
+     * @param aBytesRequested ?description
+     */ 
+    virtual void FreeMemory(TInt aBytesRequested, TBool aIsDataPaged) = 0;
+    
+    /**
+     * @since S60 5.0
+     * @return ETrue if the action is currently freeing memory, else EFalse
+     */ 
+    virtual TBool IsRunning() = 0;
+    
+protected:
+    // 
+    /**
+     * To be called by the derived class after the memory has been freed (or if it fails)
+     * 
+     * @since S60 5.0
+     * @param aError KErrNone if memory has successfully been freed, otherwise any system wide error code
+     */ 
+    void MemoryFreed(TInt aError);
+    
+    COomAction(MOomActionObserver& aStateChangeObserver);
+    
+private: //data
+    
+    enum TOomActionState
+        {
+        EOomIdle,
+        EOomFreeingMemory
+        };  
+    TOomActionState iState;
+    
+    MOomActionObserver& iStateChangeObserver;
+    };
+
+#endif /*OOMACTION_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomactionconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMACTIONCONFIG_
+#define OOMACTIONCONFIG_
+
+#include <e32cmn.h>
+#include <e32std.h>
+#include <w32std.h>
+
+class MOomRuleConfig;
+class COomWindowGroupList;
+
+enum TOomSyncMode
+    {
+    EContinue,					// Continue with the next action regardless of anything else (exluding max_batch_size)
+    EEstimate,					// Continue with the next action if we estimate that we need to free more memory
+    ECheckRam,					// Wait for this action to complete, then check the free RAM before continuing
+    EContinueIgnoreMaxBatchSize // Continue with the next action regardless of anything else (including max_batch_size)
+    };
+
+/*
+ * The base class for the configuration of all OOM actions
+ * 
+ * @lib oommonitor.lib
+ * @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomActionConfig) : public CBase
+    {
+public:
+    // Add a rule
+    // This class takes ownership of the given rule
+    void AddRuleL(MOomRuleConfig* aRule);    // Add the configuration for a rule (e.g. an idle time rule)
+            
+    virtual ~COomActionConfig();
+    
+    // Set the priority of this action
+    // This priority will be applied if none of the attached rules can be applied
+    inline void SetDefaultPriority(TUint aPriority);
+    
+protected:
+    
+    // Return the priority for this action for the idle time of the target app
+    TUint Priority(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const;
+    
+    void ConstructL();
+
+    COomActionConfig(TInt32 aId);
+    
+public:
+    
+    TOomSyncMode iSyncMode;
+    
+    TInt iRamEstimate;    // The estimated RAM saving after performing this action
+    
+    TInt32 iId;        // The ID of the affected component (e.g. an application ID for app closure, or a plugin ID for a plugin event)
+    
+    TUint iDefaultPriority;
+    
+protected:    
+    
+    RPointerArray<MOomRuleConfig> iRules;
+    };
+
+#include "oomactionconfig.inl"
+
+#endif /*OOMACTIONCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomactionconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2006-2010  Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMACTIONCONFIGINL_H_
+#define OOMACTIONCONFIGINL_H_
+
+// Set the priority of this action
+// This priority will be applied if none of the attached rules can be applied
+inline void COomActionConfig::SetDefaultPriority(TUint aPriority)
+    {
+    iDefaultPriority = aPriority;
+    }
+
+
+#endif /*OOMACTIONCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomactionlist.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,240 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMACTIONLIST_H_
+#define OOMACTIONLIST_H_
+
+#include <e32def.h>
+#include <e32base.h>
+
+#include "oommonitorplugin.h"
+
+class COomWindowGroupList;
+class CMemoryMonitorServer;
+class COomCloseApp;
+class TActionRef;
+class COomRunPlugin;
+class COomConfig;
+
+/*
+ * Interface for reporting a change of state in an OOM action
+ * e.g. that the action has changed from a freeing-memory state to an idle state
+ * 
+ * @lib oommonitor.lib
+ * @since S60 v5.0
+ */
+class MOomActionObserver
+    {
+public:
+    virtual void StateChanged() = 0;
+    };
+
+
+template <class T> 
+/**
+ *  A class for getting instances of all of the OOM ECom plugins
+ *  This class is templated because we actually need two types of list
+ *  One list for V1 plugins
+ *  One list for V2 plugins
+ *  The functionality of each list is nearly identical, hence the templated class
+ *  
+ * @lib oommonitor.lib
+ * @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomPluginList) : public CBase
+    {
+public:
+    
+    /** 
+     * Two-phased constructor.
+     * @param aInterfaceUid The interface of the plugin (either V1 or V2) depending on the templated type
+     */
+    static COomPluginList* NewL(TInt aInterfaceUid);
+    inline TInt Count();
+    inline T& Implementation(TInt aIndex);
+    inline TInt32 Uid(TInt aIndex);
+    
+    ~COomPluginList();
+    
+private:
+    COomPluginList();
+    void ConstructL(TInt aInterfaceUid);
+    
+private: // data
+    
+    struct TPlugin
+        {
+        TPlugin();
+        T* iImpl;
+        TUid iDtorUid;
+        TInt32 iUid;
+        };
+    
+    RArray<TPlugin> iPlugins;
+    };
+
+/*
+ * The list of possible OOM actions to be run.
+ * 
+ * This class is responsible for identifying the best action(s) to execute at a given time.
+ * This decision is based on the properties of each action and idle time of the target apps.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomActionList) : public CBase, public MOomActionObserver
+    {
+public:
+
+    /**
+     * Two-phased constructor.
+     * @param aMonitor the owning Memory Monitor
+     * @param aServer 
+     * @param aWs a handle to a window server session, opened by the Memory Monitor
+     * @param aConfig
+     */
+    static COomActionList* NewL(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs, COomConfig& aConfig);
+
+    ~COomActionList();
+    
+    /**
+     * Creates a list of actions based on the contents of the config and the current window group list
+     * Any old actions will be replaced.
+     * 
+     * @since S60 5.0
+     * @param aWindowGroupList
+     * @param aConfig
+     */
+    void BuildActionListL(COomWindowGroupList& aWindowGroupList, COomConfig& aConfig);    
+    
+    template <class T>
+    void BuildPluginActionsL(COomPluginList<T>& aPluginList, COomWindowGroupList& aWindowGroupList, COomConfig& aConfig, TInt& aActionsIndex);
+    
+    /**
+     * Execute the OOM actions according to their priority
+     * Actions are run in batches according to their sync mode
+     * 
+     * @since S60 5.0
+     * @param aMaxPriority The maximum priority of actions to run 
+     */     
+    void FreeMemory(TInt aMaxPriority);
+    
+    /**
+     * Sets the target; the maximum prioirity up to which actions are run when an OomMonitor event 
+     * occurs
+     * 
+     * @since S60 5.0
+     * @param aCurrentRamTarget the desired amount of free unpaged memory
+	 * @param aCurrentSwapTarget the desired amount of free paged memory
+     */    
+    inline void SetCurrentTargets(TUint aCurrentRamTarget, TUint aCurrentSwapTarget);
+    
+    /**
+     * Switch all plugins to Off (Memory Good) state
+     * Should be called when the memory situation is good, i.e. the actions run have released enough memory 
+     * so that the device is above the current target.
+     * It is also always called after an optional RAM request has been processed, even if insufficient
+     * memory could be freed to successfully complete the request.
+     * 
+     * @since S60 5.0
+     */     
+    void SwitchOffPlugins();
+        
+    /**
+     * Compares priorites of two actions, hard-coded rules are used to determine the order 
+     * of actions with equal priority:
+     * - application plugins are run in preference to system plugins
+     * - appliction plugins where the target app is not running are run first
+     * - Z order of the target app determines order of the rest of the application plugins (furthest back first)
+     * - system plugins are run before app close actions
+     * - Z order determines the prioirty of app close actions (furthest back first)
+     * 
+     * @since S60 5.0
+     */    
+    static TInt ComparePriorities(const TActionRef& aPos1, const TActionRef& aPos2 );
+
+    /**
+     * A callback from the UI framework that an applications has failed to respond to the close event.
+     * Allows us to cleanup the related app close action object and move on the next available action.
+     * 
+     * @since S60 5.0
+     * @param aWgId the window group ID of the application that has not closed.
+     */    
+    void AppNotExiting(TInt aWgId);
+    
+// from MOomActionObserver
+
+    /**
+     * 
+     * from MOomActionObserver
+     * 
+     * An action has changed state (possibly it has completed freeing memory)
+     */
+    void StateChanged();    
+    
+private:
+    
+    COomActionList(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs);
+    
+    void ConstructL(COomConfig& aConfig);
+    
+private: //data    
+    
+    RWsSession& iWs;
+    
+    RPointerArray<COomCloseApp> iCloseAppActions;
+    RPointerArray<COomRunPlugin> iRunPluginActions;
+    RArray<TActionRef> iActionRefs;
+    
+    TInt iCurrentActionIndex;
+        
+    TUint iCurrentRamTarget;
+    TBool iSwapUsageMonitored;
+    TUint iCurrentSwapTarget;
+
+    /*
+     * Flag specifying that a OomMonitor event is in progress.
+     */
+    TBool iFreeingMemory;
+    
+    CMemoryMonitor& iMonitor;
+
+    /**
+     * The list of V1 plugins
+     * Own
+     */
+    COomPluginList<COomMonitorPlugin>* iPluginList;
+    
+    /**
+     * The list of V2 plugins
+     * Own
+     */
+    COomPluginList<COomMonitorPluginV2>* iPluginListV2;
+    
+    /**
+     * The maximum priority of actions that should be run by an OomMonitor Event
+     */
+    TInt iMaxPriority; 
+    
+    CMemoryMonitorServer& iServer;
+    
+    };
+
+#include "oomactionlist.inl"
+
+#endif /*OOMACTIONLIST_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomactionlist.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2006-2010  Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMACTIONLISTINL_H_
+#define OOMACTIONLISTINL_H_
+
+template <class T>
+inline TInt COomPluginList<T>::Count()
+    {
+    return iPlugins.Count();
+    }
+    
+template <class T>
+inline T& COomPluginList<T>::Implementation(TInt aIndex)
+    {
+    return *(iPlugins[aIndex].iImpl);
+    }
+
+template <class T>
+inline TInt32 COomPluginList<T>::Uid(TInt aIndex)
+    {
+    return iPlugins[aIndex].iUid;
+    }
+    
+inline void COomActionList::SetCurrentTargets(TUint aCurrentRamTarget, TUint aCurrentSwapTarget)
+    {
+    iCurrentRamTarget = aCurrentRamTarget;
+    iCurrentSwapTarget = aCurrentSwapTarget;
+    }
+
+
+#endif /*OOMACTIONLISTINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomactionref.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMACTIONREF_H_
+#define OOMACTIONREF_H_
+
+#include <e32base.h>
+#include "oomactionconfig.h"
+
+class COomRunPlugin;
+
+/**
+ *  Encapsulates a reference to an action. 
+ *  
+ *  Objects of this T-class are instantiated at memory freeing time in preference to the  
+ *  COomAction derived objects, so that we do not instantiate anything on the heap at a time
+ *  when the device is, by-definition, low on memory.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+class TActionRef
+    {
+public:
+    
+    enum TActionType
+        {
+        EAppPlugin,
+        ESystemPlugin,
+        EAppClose
+        };
+
+    //constructor for Plugin actions
+    TActionRef(TActionType aType, TInt aPriority, TOomSyncMode aSyncMode, TInt aRamEstimate, COomRunPlugin& aRunPlugin, TUint aWgIndexOfTargetApp);
+
+    //constructor for AppClose actions
+    TActionRef(TActionType aType, TInt aPriority, TOomSyncMode aSyncMode, TInt aRamEstimate, TInt aWgId, TUint aWgIndex);
+    
+    TActionType Type() const;
+    TUint Priority() const;
+    TOomSyncMode SyncMode() const;
+    TInt RamEstimate() const;
+    TInt WgId() const;
+    TInt WgIndex() const;
+    COomRunPlugin& RunPlugin();
+
+private: //data
+    
+    TActionType iType;
+    TUint iPriority;
+    TOomSyncMode iSyncMode; //needed as we don't have reference to the config 
+    TInt iRamEstimate; //needed as we don't have reference to the config 
+    TInt iWgId; //For AppClose
+    TInt iWgIndex;
+    COomRunPlugin* iRunPlugin; //For Plugins. Not owned
+    };
+
+#endif /*OOMACTIONREF_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomappclosetimer.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Timer class which implements a timeout for an application close action.
+*
+*/
+
+
+#ifndef OOMAPPCLOSETIMER_H_
+#define OOMAPPCLOSETIMER_H_
+
+#include <e32base.h>
+
+class COomCloseApp;
+
+/**
+ *  A simple timer class which implements a timeout for an application close action.
+ *
+ *  If the application has not been closed within the period this timer is started with, 
+ *  then we complete the action as if he had been successful, allowing us to move on to the 
+ *  action or set of actions.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomAppCloseTimer) : public CTimer
+    {
+public:
+    static COomAppCloseTimer* NewL(COomCloseApp& aMonitor);
+private:
+    COomAppCloseTimer(COomCloseApp& aMonitor);
+    void RunL();
+    
+private: //data
+	
+    /**
+     * A reference to the owning close app action
+     */
+    COomCloseApp& iMonitor;
+    
+    };
+
+#endif /*OOMAPPCLOSETIMER_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomappclosewatcher.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  An active object which watches for app close actions successfully completing.
+*
+*/
+
+
+#ifndef OOMAPPCLOSEWATCHER_H_
+#define OOMAPPCLOSEWATCHER_H_
+
+#include <e32base.h>
+
+class COomCloseApp;
+class TApaTask;
+
+/**
+ *  This class implements an active object which watches for app close actions successfully completing.
+ *  
+ *  This watcher object logs-on to the thread of the application being closed and completes 
+ *  the app close action when the thread dies.  
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomAppCloseWatcher) : public CActive
+    {
+public:
+    COomAppCloseWatcher(COomCloseApp& aMonitor);
+    ~COomAppCloseWatcher();
+    void Start(const TApaTask& aTask);
+private:
+    void DoCancel();
+    void RunL();
+    
+private: //data
+
+    /**
+     * A reference to the owning close app action
+     */
+	COomCloseApp& iMonitor;
+
+    /**
+     * A handle to the main thread of the application to be closed.
+     */
+    RThread iThread;
+    
+    /**
+     * A backup of the orginal priority of the application's process
+     */
+    TProcessPriority iOriginalProcessPriority;
+    };
+
+#endif /*OOMAPPCLOSEWATCHER_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomapplicationconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMAPPLICATIONCONFIG_
+#define OOMAPPLICATIONCONFIG_
+
+#include <e32base.h>
+
+class COomCloseAppConfig;
+class MOomRuleConfig;
+
+/*
+ * A list of action configurations for a particular target application.
+ *
+ * All configured actions in this list must be for the same target application.
+ * Actions may be configured to close the application or to run an OOM plugin.
+ *  
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomApplicationConfig) : public CBase
+    {
+public:
+    
+    /**
+     * Two-phased constructor
+     * @param aApplicationId the UID of the application
+     */
+	static COomApplicationConfig* NewL(TUint aApplicationId);
+    
+// Functions for getting configuration  
+    
+    /**
+     * Return a pointer to the close app config, this may be NULL if no app close config has been configured
+     * Ownership is NOT passed to the caller
+     */
+    inline COomCloseAppConfig* GetAppCloseConfig();
+        
+    inline TUint Id();
+    
+// Functions for setting configuration  
+
+    inline void SetAppCloseConfig(COomCloseAppConfig* aActionConfig);
+    
+    /**
+     * Add a rule
+     * 
+     * This class takes ownership of the given rule
+     * The rule would will apply to the "application close" event
+     */
+    void AddRuleL(MOomRuleConfig* aRule);
+    
+    ~COomApplicationConfig();
+
+public:
+    
+    TUint iGoodRamThreshold;
+    TUint iLowRamThreshold; 
+    TUint iGoodSwapThreshold;
+    TUint iLowSwapThreshold; 
+    
+private:
+    
+    void ConstructL();
+    
+    COomApplicationConfig(TUint aApplicationId);
+    
+    COomCloseAppConfig* iCloseAppConfig;
+    
+    TInt iIndex;
+    
+    TUint iApplicationId;
+    };
+
+#include "oomapplicationconfig.inl"
+
+#endif /*OOMAPPLICATIONCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomapplicationconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMAPPLICATIONCONFIGINL_H_
+#define OOMAPPLICATIONCONFIGINL_H_
+
+#include "oompanic.h"
+
+inline COomCloseAppConfig* COomApplicationConfig::GetAppCloseConfig()
+    {
+    return iCloseAppConfig;
+    }
+
+inline void COomApplicationConfig::SetAppCloseConfig(COomCloseAppConfig* aActionConfig)
+    {
+    __ASSERT_ALWAYS(iCloseAppConfig == NULL, OomMonitorPanic(KSameAppClosureConfiguredTwice));
+    
+    iCloseAppConfig = aActionConfig;
+    }
+
+
+inline TUint COomApplicationConfig::Id()
+    {
+    return iApplicationId;
+    }
+
+#endif /*OOMAPPLICATIONCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomclientrequestqueue.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  COomClientRequestQueue.cpp.
+*
+*/
+
+
+#ifndef COOMCLIENTREQUESTQUEUE_H
+#define COOMCLIENTREQUESTQUEUE_H
+
+#include <e32std.h>
+#include <e32base.h>
+#include <e32property.h>
+
+#include "oommemorymonitor.h"
+
+class COomClientRequestQueue;
+class CMemoryMonitor;
+class CSubscribeHelper;
+
+class TClientRequest
+    {
+public:
+    TClientRequest(TActionTriggerType aClientRequestType, TInt aBytesRequested);    
+    TClientRequest(TActionTriggerType aClientRequestType, const RMessage2& aRequestFreeRam);    
+public:    
+    TActionTriggerType iClientRequestType;
+    TInt iBytesRequested;
+    RMessage2 iRequestFreeRamMessage;
+    TSglQueLink iLink;
+    };
+
+/*
+ *  If two client requests are queued, the COomClientRequestTimer is used to wait after the first request 
+ *  has been completed, to allow the first client time to allocate the memory it requested.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomClientRequestTimer) : public CTimer
+    {
+public:
+    static COomClientRequestTimer* NewL(COomClientRequestQueue& aQueue);
+private:
+    COomClientRequestTimer(COomClientRequestQueue& aQueue);
+    void RunL();    
+    
+private: //data
+    COomClientRequestQueue& iClientRequestQueue;
+    };
+
+/**
+ *  Queues client requests so that the actual RAM level of the device is in a state where it can be more 
+ *  accurately determined whether more actions need to be run
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0 
+ */
+NONSHARABLE_CLASS(COomClientRequestQueue) : public CBase
+    {
+public:
+ 
+    // Constructors and destructor
+
+    /**
+     * Destructor.
+     */
+    ~COomClientRequestQueue();
+
+    /**
+     * Two-phased constructor.
+     */
+    static COomClientRequestQueue* NewL(CMemoryMonitor& aMonitor);
+   
+    CMemoryMonitor& Monitor();
+    
+    void RequestFreeMemoryL(const RMessage2& aMessage);
+    void RequestOptionalRamL(const RMessage2& aMessage);
+    void ActionsCompleted(TInt aBytesFree, TBool aMemoryGood);
+    void RequestTimerCallbackL();
+    
+private:
+
+    /**
+     * Constructor for performing 1st stage construction
+     */
+    COomClientRequestQueue(CMemoryMonitor& aMonitor);
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction
+     */
+    void ConstructL();
+    
+    static TInt WatchdogStatusStatusChanged(TAny* aPtr);
+    void HandleWatchdogStatusCallBack();
+    void AddClientRequestL(TClientRequest& request);
+    void StartClientRequestL();    
+    
+    // parameters for P&S watcher.
+
+    /**
+     * The handle to the P&S property that can be used to initiate OOM Monitor actions
+     */    
+    RProperty iWatchdogStatusProperty;
+    
+    /**
+     * The active object which monitors the P&S property that can be used to initiate OOM Monitor actions
+     * Own.       
+     */    
+    CSubscribeHelper* iWatchdogStatusSubscriber;
+    
+    TSglQue<TClientRequest> iQueue;
+    
+    TBool iClientRequestActive;
+    
+    CMemoryMonitor& iMonitor;
+
+    COomClientRequestTimer* iClientRequestTimer;
+
+    TTime iLastClientCompletedTime;
+    };
+
+#endif // COOMCLIENTREQUESTQUEUE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomcloseapp.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMCLOSEAPP_H_
+#define OOMCLOSEAPP_H_
+
+
+#include <apgtask.h>
+
+#include "oomaction.h"
+
+class COomAppCloseTimer;
+class COomAppCloseWatcher;
+class TApaTask;
+class TActionRef;
+
+/*
+ * The OOM action of closing an application in order to free up memory.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomCloseApp) : public COomAction
+    {
+public:
+    /**
+     * Two-phased constructor.
+     * @param aStateChangeObserver an observer to the state of the application
+     * @param aWs a connected handle to a window server session
+     */
+    static COomCloseApp* NewL(MOomActionObserver& aStateChangeObserver, RWsSession& aWs);
+        
+    //from COomAction
+    
+    /**
+     * Close the application in order to free memory
+     * Call the COomAction::MemoryFreed when it is done
+     * @param aBytesRequested not used for clsoe app actions
+     */
+    virtual void FreeMemory(TInt aBytesRequested, TBool aIsDataPaged);
+    
+    ~COomCloseApp();
+    
+    /**
+     * Callback from COomAppCloseWatcher and COomAppCloseTimer
+     */
+    void CloseAppEvent();
+    
+    inline TBool IsRunning();
+
+    /**
+     * Configure, or reconfigure the COomCloseApp object
+     * Action objects are reused to minimize any memory allocation when memory is low
+     */
+    void Reconfigure(const TActionRef& aRef);
+
+    inline TUint WgId() const;
+    
+private:
+    
+    COomCloseApp(MOomActionObserver& aStateChangeObserver, RWsSession& aWs);
+    
+    void ConstructL();
+    
+    TUint iWgId;
+        
+    TBool iAppCloserRunning;
+    TApaTask iCurrentTask;
+
+    /**
+     * A timeout for an app close action
+     * Own
+     */
+    COomAppCloseTimer* iAppCloseTimer;
+
+    /**
+     * A watcher for the application closing
+     * Own
+     */
+    COomAppCloseWatcher* iAppCloseWatcher; 
+    };
+
+#include "oomcloseapp.inl"
+
+#endif /*OOMCLOSEAPP_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomcloseapp.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMCLOSEAPPINL_H_
+#define OOMCLOSEAPPINL_H_
+
+inline TBool COomCloseApp::IsRunning()
+    {
+    return iAppCloserRunning;
+    }
+
+inline TUint COomCloseApp::WgId() const
+    {
+    return iWgId;
+    }
+
+#endif /*OOMCLOSEAPPINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomcloseappconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMCLOSEAPPCONFIG_
+#define OOMCLOSEAPPCONFIG_
+
+#include "oomactionconfig.h"
+
+/*
+ * 
+ */
+/**
+ *  The OOM action of closing an application in order to free up memory.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomCloseAppConfig) : public COomActionConfig
+    {
+public:
+    /**
+     * Two-phased constructor.
+     * @param aId The Uid of the applicaton
+     */
+    static COomCloseAppConfig* NewL(TInt32 aId);
+    
+    ~COomCloseAppConfig();
+
+    /**
+     * Calculates the priority of a close app action, based on its position on the window group list
+     * 
+     * @param aWindowGroupList a fully constructed, collapsed window group list
+     * @param aAppIndexInWindowGroup the position in the window group list
+     */
+    inline TUint CalculateCloseAppPriority(const COomWindowGroupList& aWindowGroupList, TUint aAppIndexInWindowGroup);
+    
+private:
+    
+    COomCloseAppConfig(TInt32 aId);
+    };
+
+#include "oomcloseappconfig.inl"
+
+#endif /*OOMCLOSEAPPCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomcloseappconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMCLOSEAPPCONFIGINL_H_
+#define OOMCLOSEAPPCONFIGINL_H_
+
+inline TUint COomCloseAppConfig::CalculateCloseAppPriority(const COomWindowGroupList& aWindowGroupList, TUint aAppIndexInWindowGroup)
+    {
+    // Calculating the priority for application closures is simple, we just get the base class to apply the rules
+    return Priority(aWindowGroupList, aAppIndexInWindowGroup);
+    }
+
+#endif /*OOMCLOSEAPPCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMCONFIG_
+#define OOMCONFIG_
+
+#include <e32base.h>
+
+#include "oomglobalconfig.h"
+
+class COomCloseAppConfig;
+class COomRunPluginConfig;
+class MOomRuleConfig;
+class COomApplicationConfig;
+
+/*
+ * A class representing the entire configuration.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomConfig) : public CBase
+    {
+public:
+    
+    static COomConfig* NewL();
+    
+// Functions for setting configuration  
+    
+    // Add the configuration for an application closure.
+    // This class takes ownership of this configuration object.
+    void SetAppCloseConfigL(COomCloseAppConfig* aActionConfig);
+    
+    // Add the configuration for a plugin action.
+    // This class takes ownership of the configuration object.
+    void AddPluginConfigL(COomRunPluginConfig* aPluginConfig);
+    
+    // Add a rule for an application
+    // This class takes ownership of the given rule
+    // This rule applies to the specified application (and not a plugin associated with this application)
+    // The rule would usually apply to an "application close" event
+    void AddApplicationRuleL(TUint aTargetAppId, MOomRuleConfig* aRule);
+    
+    // Add a rule for a plugin
+    // This class takes ownership of the given rule
+    // This rule is applied to the plugin with the specified ID
+    void AddPluginRuleL(TUint aPluginId, MOomRuleConfig* aRule);    
+    
+    // Add this application config - this class takes ownership of it
+    // Application config includes settings for a particular application, e.g. whether or not it can be closed
+    void AddApplicationConfigL(COomApplicationConfig* aApplicationConfig);
+    
+// Functions for getting configuration  
+    
+    // Get the application configuration for the given app id
+    // If no specific actions have been configured for this application then the default application configuration is returned
+    COomApplicationConfig& GetApplicationConfig(TInt32 aAppId);
+    
+    // Get the plugin configuration for the given plugin id
+    // If no specific actions have been configured for this plugin then the default plugin configuration is returned
+    COomRunPluginConfig& GetPluginConfig(TInt32 aPluginId);
+        
+// Functions for setting global configuration   
+    
+    ~COomConfig();
+    
+    inline COomGlobalConfig& GlobalConfig();
+    
+    inline void SetDefaultLowRamThreshold(TInt aLowRamThreshold);
+    inline void SetDefaultGoodRamThreshold(TInt aGoodRamThreshold);
+    inline void SetSwapUsageMonitored(TBool aMonitored);
+    inline void SetDefaultLowSwapThreshold(TInt aLowSwapThreshold);
+    inline void SetDefaultGoodSwapThreshold(TInt aGoodSwapThreshold);
+    inline void SetMaxCloseAppBatch(TUint MaxCloseAppBatch);
+    inline void SetDefaultWaitAfterPlugin(TInt aMilliseconds);
+    inline void SetMaxAppExitTime(TInt aMilliseconds);
+    
+private:
+    void ConstructL();
+    
+    RHashMap<TInt32, COomApplicationConfig*> iApplicationToConfigMapping; // A hash-map of application configs, keyed on the application ID
+    
+    RHashMap<TInt32, COomRunPluginConfig*> iPluginToConfigMapping; // A hash-map of plug-in configs, keyed on the plugin ID
+
+    COomGlobalConfig iGlobalConfig;
+    };
+
+#include "oomconfig.inl"
+
+#endif /*OOMCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMCONFIGINL_H_
+#define OOMCONFIGINL_H_
+
+inline COomGlobalConfig& COomConfig::GlobalConfig()
+    {
+    return iGlobalConfig;
+    }
+
+void COomConfig::SetDefaultLowRamThreshold(TInt aLowRamThreshold)
+    {
+    iGlobalConfig.iLowRamThreshold = aLowRamThreshold;
+    }
+
+void COomConfig::SetDefaultGoodRamThreshold(TInt aGoodRamThreshold)
+    {
+    iGlobalConfig.iGoodRamThreshold = aGoodRamThreshold;
+    }
+
+void COomConfig::SetSwapUsageMonitored(TBool aMonitored)
+    {
+    iGlobalConfig.iSwapUsageMonitored = aMonitored;
+    }
+
+void COomConfig::SetDefaultLowSwapThreshold(TInt aLowSwapThreshold)
+    {
+    iGlobalConfig.iLowSwapThreshold = aLowSwapThreshold;
+    }
+
+void COomConfig::SetDefaultGoodSwapThreshold(TInt aGoodSwapThreshold)
+    {
+    iGlobalConfig.iGoodSwapThreshold = aGoodSwapThreshold;
+    }
+
+void COomConfig::SetMaxCloseAppBatch(TUint aMaxCloseAppBatch)
+    {
+    iGlobalConfig.iMaxCloseAppBatch = aMaxCloseAppBatch;
+    }
+void COomConfig::SetDefaultWaitAfterPlugin(TInt aMilliseconds)
+    {
+    iGlobalConfig.iDefaultWaitAfterPlugin = aMilliseconds;
+    }
+
+void COomConfig::SetMaxAppExitTime(TInt aMilliseconds)
+    {
+    iGlobalConfig.iMaxAppExitTime = aMilliseconds;
+    }
+
+#endif /*OOMCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomconfigparser.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The parser for the OOM configuration file.
+*
+*/
+
+
+#ifndef OOMCONFIGPARSER_H_
+#define OOMCONFIGPARSER_H_
+
+#include <xml/contenthandler.h>
+
+using namespace Xml;
+
+class COomConfig;
+class COomRunPluginConfig;
+
+/**
+ *  Parser for the Oom Monitor configuration file
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomConfigParser) : public CBase, public MContentHandler 
+    {
+public:
+    COomConfigParser(COomConfig& aConfig, RFs& aFs);
+    
+    void ParseL();
+
+    
+    // From MContent handler
+    virtual void OnStartDocumentL(const RDocumentParameters& aDocParam, TInt aErrorCode);
+    virtual void OnEndDocumentL(TInt aErrorCode);
+    virtual void OnStartElementL(const RTagInfo& aElement, const RAttributeArray& aAttributes, 
+                                 TInt aErrorCode);
+    virtual void OnEndElementL(const RTagInfo& aElement, TInt aErrorCode);
+    virtual void OnContentL(const TDesC8& aBytes, TInt aErrorCode);
+    virtual void OnStartPrefixMappingL(const RString& aPrefix, const RString& aUri, 
+                                       TInt aErrorCode);
+    virtual void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode);
+    virtual void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode);
+    virtual void OnSkippedEntityL(const RString& aName, TInt aErrorCode);
+    virtual void OnProcessingInstructionL(const TDesC8& aTarget, const TDesC8& aData, 
+                                          TInt aErrorCode);
+    virtual void OnError(TInt aErrorCode);
+    virtual TAny* GetExtendedInterface(const TInt32 aUid);
+    
+    
+    
+private:
+    
+    void ConfigError(TInt aError);
+    
+    
+    
+    void StartElementL(const TDesC8& aLocalName, 
+                          const RAttributeArray& aAttributes);
+    
+    void SetGlobalSettings(const RAttributeArray& aAttributes);
+    void SetForceCheckConfigL(const RAttributeArray& aAttributes);
+    void SetAppConfigL(const RAttributeArray& aAttributes);
+    void SetCloseAppConfigL(const RAttributeArray& aAttributes);
+    void SetAppCloseIdlePriorityConfigL(const RAttributeArray& aAttributes);
+    void SetForegroundAppPriorityL(const RAttributeArray& aAttributes);
+    
+    void SetSystemPluginConfigL(const RAttributeArray& aAttributes);
+    void SetAppPluginConfigL(const RAttributeArray& aAttributes);
+    void SetPluginIdlePriorityL(const RAttributeArray& aAttributes);
+    void SetPluginForegroundAppPriorityL(const RAttributeArray& aAttributes);
+    
+    TInt GetValueFromAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TPtrC8& aValue);
+    TInt GetValueFromHexAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue);
+    TInt GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue);
+    TInt GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TInt& aValue);
+    TInt GetValueFromBooleanAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TBool& aValue);
+    
+    void SetPluginSyncMode(const RAttributeArray& aAttributes, COomRunPluginConfig& aRunPluginConfig);
+
+    enum TOomParsingState
+        {
+        EOomParsingStateNone,
+        EOomParsingStateRoot,
+        EOomParsingStateGlobalSettings,
+        EOomParsingStateAppSettings,
+        EOomParsingStateAppCloseSettings,
+        EOomParsingStateSystemPluginSettings,
+        EOomParsingStateAppPluginSettings
+        };    
+    
+    // Check that the current state is as expected
+    // If not then the specified config error is generated
+    void CheckState(TOomParsingState aExpectedState, TInt aError);
+    
+    // Check that the current state is as expected
+    // If not then the specified config error is generated
+    // This version checks to ensure that the current state matches either of the passed in states
+    void CheckState(TOomParsingState aExpectedState1, TOomParsingState aExpectedState2, TInt aError);
+    
+    COomConfig& iConfig;
+    
+    RFs& iFs;
+    
+    void ChangeState(TOomParsingState aState);    
+    
+    TOomParsingState iState;
+    
+    TUint iParentUid;
+    TUint iParentTargetApp;
+    };
+
+#endif /*OOMCONFIGPARSER_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomconstants.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Out of Memory Monitor Constants.
+*
+*/
+
+
+#ifndef OOMCONSTANTS_HRH_
+#define OOMCONSTANTS_HRH_
+
+const TInt KAppNotInWindowGroupList = -1;
+
+const TInt KOomDefaultAppId = 0;
+const TInt KOomDefaultPluginId = 0;
+const TInt KOomThresholdUnset = 0;
+
+const TInt KOomBusyAppId = 0x10286A84;
+const TInt KOomHighPriorityAppId = 0x10286A85;
+
+const TInt KOomPriorityInfinate = 1024;
+
+// same as Akncapserver since fast swap is contained in it
+const TUid  KUidFastSwap = { 0x10207218 };
+const TUid  KUidPenInputServer = { 0x10281855 };
+
+const TInt KMicrosecondsInMillisecond = 1000;
+
+#endif /*OOMCONSTANTS_HRH_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomforegroundrule.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMFOREGROUNDRULE_
+#define OOMFOREGROUNDRULE_
+
+#include <e32base.h>
+#include "oomruleconfig.h"
+
+/**
+ *  A rule to modify the priority if a particular application is in the foreground
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomForegroundRule) : public CBase, public MOomRuleConfig
+    {
+public:
+    // If the specified target app is in the foreground then apply the specified priority
+    COomForegroundRule(TInt aTargetAppId, TInt aPriority);
+    
+    TBool RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const;
+
+    inline TUint Priority() const;
+        
+private:
+    TInt iTargetAppId;
+    TInt iPriority; // The priority to apply if the specified app is in the foreground
+    };
+
+#include "oomforegroundrule.inl"
+
+#endif /*OOMFOREGROUNDRULE_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomforegroundrule.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMFOREGROUNDRULEINL_H_
+#define OOMFOREGROUNDRULEINL_H_
+
+
+inline TUint COomForegroundRule::Priority() const
+    {
+    return iPriority;
+    }
+
+#endif /*OOMFOREGROUNDRULEINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomglobalconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMGLOBALCONFIG_
+#define OOMGLOBALCONFIG_
+
+#include <e32base.h>
+#include <e32hashtab.h>
+
+/**
+ *  Class presenting the parts of the configuration that are global defaults rather than specific
+ *  to the current state of the device
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomGlobalConfig) : public CBase
+    {
+public:
+    ~COomGlobalConfig();
+    
+    inline void AddForceCheckPriorityL(TUint aPriority);
+    
+    // Return ETrue if a force check has been added for this priority, return EFalse otherwise
+    inline TBool ForceCheckAtPriority(TUint aPriority) const;
+    
+public:
+    TInt iLowRamThreshold;
+    TInt iGoodRamThreshold;
+    TBool iSwapUsageMonitored;
+    TInt iLowSwapThreshold;
+    TInt iGoodSwapThreshold;
+    TUint iMaxCloseAppBatch;
+    TInt iDefaultWaitAfterPlugin;
+    TInt iMaxAppExitTime;
+    
+    RHashSet<TUint> iForceCheckPriorities;
+    };
+
+#include "oomglobalconfig.inl"
+
+#endif /*OOMGLOBALCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomglobalconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMGLOBALCONFIGINL_H_
+#define OOMGLOBALCONFIGINL_H_
+
+void COomGlobalConfig::AddForceCheckPriorityL(TUint aPriority)
+    {
+    iForceCheckPriorities.InsertL(aPriority);
+    }
+
+// Return ETrue if a force check has been added for this priority, return EFalse otherwise
+TBool COomGlobalConfig::ForceCheckAtPriority(TUint aPriority) const
+    {
+    return (iForceCheckPriorities.Find(aPriority) != NULL);
+    }
+
+#endif /*OOMGLOBALCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomidletimerule.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMIDLETIMERULE_
+#define OOMIDLETIMERULE_
+
+#include <e32base.h>
+
+#include "oomruleconfig.h"
+
+/**
+ *  A rule to modify the priority of an app close action if it has been idle for a period of time
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomIdleTimeRule) : public CBase, public MOomRuleConfig
+    {
+public:
+    static COomIdleTimeRule* NewL(TTimeIntervalSeconds aIdleTime, TInt aPriority);
+    
+    TBool RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const;
+
+    inline TUint Priority() const;
+    
+    ~COomIdleTimeRule();
+    
+private:
+    COomIdleTimeRule(TTimeIntervalSeconds aIdleTime, TInt aPriority);
+    
+private:
+    TTimeIntervalSeconds iIdleTime; // The idle time after which to apply the given priority
+    TInt iPriority; // The priority to apply after the given idle time
+    };
+
+#include "oomidletimerule.inl"
+
+#endif /*OOMIDLETIMERULE_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomidletimerule.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMIDLETIMERULEINL_H_
+#define OOMIDLETIMERULEINL_H_
+
+inline TUint COomIdleTimeRule::Priority() const
+    {
+    return iPriority;
+    }
+
+#endif /*OOMIDLETIMERULEINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomlog.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Logging functionality for OOM monitor profiling.
+*
+*/
+
+
+#ifndef OOMLOG_H_
+#define OOMLOG_H_
+
+#ifdef _DEBUG
+
+#include <apgwgnam.h>
+
+#include "oomwindowgrouplist.h"
+
+const TUint KTimeBetweenMemorySamples = 100000; // In microseconds
+const TUint KSamplingDurationUint = 3000000;
+
+const TUint KMaxBytesOfLoggingPerSample = 20;
+
+NONSHARABLE_CLASS(COomLogger) : public CTimer
+    {
+public:
+    static COomLogger* NewL(RWsSession& aWs, RFs& aFs);
+    
+    // Start logging the available memory every n micro seconds
+    // Firstly a list of the app IDs is written to the log (foreground app first)
+    // Note that the log is created in memory (to a pre-allocated buffer) and flushed out after it is complete
+    // the samples are saved in CSV format so that they can easily be cut and pasted to plot graphs etc.
+    void StartL();
+    
+// From CTimer / CActice
+    void RunL();
+    void DoCancel();
+    
+    ~COomLogger();
+    
+    void Write(const TDesC8& aBuffer);
+    
+protected:
+    void LogApplicationIds();
+    void LogFreeMemory();
+    
+    COomLogger(RWsSession& aWs, RFs& aFs);
+    void ConstructL();
+    
+    // Duplicated functionality from OomMonitor
+    // Duplicated because it was messy to reuse it and to minimise changes to OOM monitor during development of new features
+    void ColapseWindowGroupTree();
+    
+    TUid GetUidFromWindowGroupId(TInt aWgId);
+
+    RWsSession& iWs;    
+    
+    // Used to get a list of open applications
+    RArray<RWsSession::TWindowGroupChainInfo> iWgIds;
+    CApaWindowGroupName* iWgName;
+    HBufC* iWgNameBuf;              // owned by iWgName
+    
+    RFs& iFs;
+    
+    RFile iFile;
+    TBool iIsOpen;
+    
+    // The time when the logging was started
+    TTime iStartTime;
+    
+    TBuf8<(KSamplingDurationUint / KTimeBetweenMemorySamples) * KMaxBytesOfLoggingPerSample> iWriteBuffer;
+    };
+
+#endif //_DEBUG
+
+#endif /*OOMLOG_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oommemorymonitor.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMMEMORYMONITOR_H
+#define OOMMEMORYMONITOR_H
+
+#include <e32property.h>
+#include <f32file.h>
+#include <w32std.h>
+#include "oomglobalconfig.h"
+#include "oomwindowgrouplist.h"
+#include "oommonitorsession.h"
+
+enum TActionTriggerType
+    {
+    ERamRotation,
+    EClientServerRequestOptionalRam,
+    EClientServerRequestFreeMemory,
+    EPublishAndSubscribe        
+    };
+
+// ---------------------------------------------------------
+// CMemoryMonitor
+// ---------------------------------------------------------
+//
+class COutOfMemoryWatcher;
+class CSubscribeHelper;
+class COomMonitorPlugin;
+class CMemoryMonitorServer;
+class CWservEventReceiver;
+class COomActionList;
+class COomLogger;
+class COomConfig;
+class COomClientRequestQueue;
+
+/**
+ *  The main manager class for Oom Monitor. It has the following responsibility: 
+ *  
+ *  - initiates building the static configuration at boot time and owns the object which holds this. 
+ *  - owns and drives the action list which runs actions
+ *  - owns the internal representation of the window group list and an active object to monitor window group changes
+ *  - owns the public API via the server and client request queue.
+ *  - has an active object which monitors low RAM events
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(CMemoryMonitor) : public CBase
+    {
+public:
+    static CMemoryMonitor* NewL();
+    ~CMemoryMonitor();
+
+public: // event handlers
+    void FreeMemThresholdCrossedL();
+    void AppNotExiting(TInt aWgId);
+    void StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapSpaceTarget);
+    void StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapSpaceTarget, TInt aMaxPriority);
+    void FreeOptionalRamL(TInt aBytesRequested, TInt aPluginId, TBool aDataPaged); // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
+    void HandleFocusedWgChangeL();
+    static const COomGlobalConfig& GlobalConfig();
+    void SetPriorityBusy(TInt aWgId);
+    void SetPriorityNormal(TInt aWgId);
+    void SetPriorityHigh(TInt aWgId);
+    void ResetTargets();
+    void RequestTimerCallbackL();
+    void GetFreeMemory(TInt& aCurrentFreeMemory);
+    void GetFreeSwapSpace(TInt& aCurrentFreeSwapSpace);
+    TActionTriggerType ActionTrigger() const;
+#ifdef CLIENT_REQUEST_QUEUE
+    void ActionsCompleted(TInt aBytesFree, TBool aMemoryGood);
+    TInt GoodRamThreshold() const;
+    TInt LowRamThreshold() const;
+#endif
+    void RequestFreeMemoryL(TInt aBytesRequested, TBool aDataPaged);
+    void RequestFreeMemoryPandSL(TInt aBytesRequested);
+    
+    /*
+     * Sets the RProperty associated with KOomMemoryMonitorStatusPropertyKey
+     * It checks if the value is going to be changed. 
+     * If the new value is the same as the old one then the property is not updated
+     * If the new value is different from the previously set one then the property is update
+     * 
+     * @param aNewValue one of TMemoryMonitorStatusPropertyValues 
+     */
+    void SetMemoryMonitorStatusProperty(const TMemoryMonitorStatusPropertyValues aValue);
+   
+private:
+    CMemoryMonitor();
+    void ConstructL();
+#ifndef CLIENT_REQUEST_QUEUE
+    static TInt WatchdogStatusStatusChanged(TAny* aPtr);
+    void HandleWatchdogStatusCallBack();
+    TBool FreeMemoryAboveThreshold(TInt& aCurrentFreeMemory);    void CloseNextApp();
+#endif
+    void RefreshThresholds();
+    
+public:
+    // All members are owned
+    // generally useful sessions
+    RFs iFs;
+    RWsSession iWs;
+
+    TBool iDataPaged;
+    
+private: //data
+
+    // parameters for OOM watcher.
+    TInt iLowRamThreshold;
+    TInt iGoodRamThreshold;
+    TInt iLowSwapThreshold;
+    TInt iGoodSwapThreshold;
+    TInt iCurrentRamTarget;
+    TInt iCurrentSwapTarget;
+    
+   
+    
+#ifdef CLIENT_REQUEST_QUEUE
+    TInt iClientBytesRequested;
+#endif        
+    // event receivers
+    
+    /**
+     * The active object which monitors the kernel change notifier for changes in the low and good thresholds
+     * Own
+     */    
+    COutOfMemoryWatcher* iOOMWatcher;
+    
+    
+    CWservEventReceiver* iWservEventReceiver;
+
+#ifndef CLIENT_REQUEST_QUEUE
+    // parameters for P&S watcher.
+    /**
+    * The handle to the P&S property that can be used to initiate OOM Monitor actions
+    */    
+    RProperty iWatchdogStatusProperty;
+
+    /**
+     * The active object which monitors the P&S property that can be used to initiate OOM Monitor actions
+     * Own.       
+     */    
+    CSubscribeHelper* iWatchdogStatusSubscriber;
+#endif
+    
+    /**
+     * The Memory Monitor Server
+     * Own.       
+     */
+    CMemoryMonitorServer* iServer;
+    
+#ifdef CLIENT_REQUEST_QUEUE
+    COomClientRequestQueue* iQueue;
+#endif
+    
+#ifdef _DEBUG    
+    /**
+     * Oom logging tool - samples free memory for profiling
+     * Own.       
+     */
+    COomLogger* iLogger;
+#endif
+    
+    /**
+     * A list of window group Ids, with child window groups removed such that there is one Id per application
+     * Own.       
+     */    
+    COomWindowGroupList* iOomWindowGroupList;
+    
+    /**
+     * The object responsible for identifying the best actions to run, and running them 
+     * Own.       
+     */
+    COomActionList* iOomActionList;
+    
+    /**
+     * The entire Oom Monitor configuration
+     * Own.       
+     */
+    COomConfig* iConfig;
+
+    /**
+     * The most recent value the memory monitor status property was set to 
+     */
+    TInt iLastMemoryMonitorStatusProperty;
+    
+    TActionTriggerType iActionTrigger;
+    };
+
+#endif /*OOMMEMORYMONITOR_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oommemorymonitorserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMMEMORYMONITORSERVER_H
+#define OOMMEMORYMONITORSERVER_H
+
+#include <e32base.h>
+
+class CMemoryMonitor;
+class COomClientRequestQueue;
+
+NONSHARABLE_CLASS(CMemoryMonitorServer) : public CServer2
+    {
+public:
+#ifdef CLIENT_REQUEST_QUEUE
+    static CMemoryMonitorServer* NewL(COomClientRequestQueue& aQueue);
+#else
+    static CMemoryMonitorServer* NewL(CMemoryMonitor& aMonitor);
+#endif    
+    ~CMemoryMonitorServer();
+
+    CMemoryMonitor& Monitor();
+#ifndef CLIENT_REQUEST_QUEUE
+    void CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood);
+#endif
+#ifdef CLIENT_REQUEST_QUEUE
+    COomClientRequestQueue& ClientRequestQueue();
+#endif
+    
+private:
+#ifdef CLIENT_REQUEST_QUEUE
+    CMemoryMonitorServer(COomClientRequestQueue& aQueue);
+#else
+    CMemoryMonitorServer(CMemoryMonitor& aMonitor);
+#endif
+    void ConstructL();
+    CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
+    TInt RunError(TInt aError);
+
+private:
+#ifdef CLIENT_REQUEST_QUEUE
+    COomClientRequestQueue& iQueue;
+#else
+    CMemoryMonitor& iMonitor;
+#endif
+    };
+
+#endif /*OOMMEMORYMONITORSERVER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oommemorymonitorsession.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMMEMORYMONITORSESSION_H
+#define OOMMEMORYMONITORSESSION_H
+
+#include <e32base.h>
+
+class CMemoryMonitorServer;
+class CMemoryMonitor;
+class COomClientRequestQueue;
+
+NONSHARABLE_CLASS(CMemoryMonitorSession) : public CSession2
+    {
+public:
+    CMemoryMonitorSession();
+#ifndef CLIENT_REQUEST_QUEUE
+    void CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood);
+#endif
+    
+private:
+    ~CMemoryMonitorSession();
+    CMemoryMonitorServer& Server();
+#ifdef CLIENT_REQUEST_QUEUE
+    COomClientRequestQueue& ClientRequestQueue();
+#endif
+    CMemoryMonitor& Monitor();
+    void ServiceL(const RMessage2& aMessage);
+    TBool IsDataPaged(const RMessage2& aMessage);
+private:
+    RMessagePtr2 iRequestFreeRam;
+#ifndef CLIENT_REQUEST_QUEUE
+    TInt iFunction;
+#endif    
+    TInt iMinimumMemoryRequested;
+    };
+
+#endif /*OOMMEMORYMONITORSESSION_H*/
--- a/sysresmonitoring/oommonitor/inc/oommonitorclientserver.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/inc/oommonitorclientserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Command definitions for OOM Monitor client/server interface.
+* Description:  The client / server classes allowing clients to make requests to OOM monitor.
 *
 */
 
@@ -22,20 +22,24 @@
 #include <e32std.h>
 
 enum TOomMonitorClientPanic
-	{
-	EPanicIllegalFunction,
-	EPanicRequestActive
-	};
+    {
+    EPanicIllegalFunction,
+    EPanicRequestActive
+    };
 
 void PanicClient(const RMessagePtr2& aMessage,TOomMonitorClientPanic aPanic);
 
 _LIT(KMemoryMonitorServerName, "OomMonitorServer");
 
 enum TOomMonitorCmd
-	{
-	EOomMonitorRequestFreeMemory,
-	EOomMonitorCancelRequestFreeMemory,
-	EOomMonitorThisAppIsNotExiting
-	};
+    {
+    EOomMonitorRequestFreeMemory,
+    EOomMonitorCancelRequestFreeMemory,
+    EOomMonitorThisAppIsNotExiting,
+    EOomMonitorRequestOptionalRam,
+    EOomMonitorSetPriorityBusy,
+    EOomMonitorSetPriorityNormal,
+    EOomMonitorSetPriorityHigh
+    };
 
 #endif // OOMMONITORCLIENTSERVER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomoutofmemorywatcher.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMOUTOFMEMORYWATCHER_H
+#define OOMOUTOFMEMORYWATCHER_H
+
+#include <e32base.h>
+
+class CMemoryMonitor;
+
+/**
+ *  This class is an active object which monitors a kernel change notifer for changes in the 
+ *  low and good memory thresholds. 
+ *  
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COutOfMemoryWatcher) : public CActive
+    {
+public:
+    static COutOfMemoryWatcher* NewL(CMemoryMonitor& aMonitor, TInt aLowRamThreshold, TInt aGoodRamThreshold,
+        TBool aSwapUsageMonitored, TInt aLowSwapThreshold, TInt aGoodSwapThreshold);
+    ~COutOfMemoryWatcher();
+    void Start();
+    
+    /**
+     * Set the Low and Good thresholds that we are listening for.
+     * These values can change from the global default values when certain applications are in the foreground.
+     * @param aLowThreshold If Ram Level drops below the low threshold Oom Monitor actions are started.
+     * @param aGoodThreshold When memory returns above the Good threshold then Oom Monitor stops freeing memory.
+     */
+    void UpdateThresholds(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold);
+private:
+    COutOfMemoryWatcher(CMemoryMonitor& aMonitor, TBool aSwapUsageMonitored);
+    void ConstructL(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold);
+private: // from CActive
+    void DoCancel();
+    void RunL();
+private: // data
+    RChangeNotifier iChangeNotifier;
+    CMemoryMonitor& iMemoryMonitor;
+    TBool iSwapUsageMonitored;
+    };
+
+#endif /*OOMOUTOFMEMORYWATCHER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oompanic.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Panic codes for OOM monitor.
+*
+*/
+
+
+#ifndef OOMPANIC_
+#define OOMPANIC_
+
+#include <e32def.h>
+
+enum TOomMonitorPanic
+    {
+    KRuleConfiguredBeforeApplication,
+    KCloseAppActionIsResued,
+    KAppConfigAddedTwice,
+    KSameAppClosureConfiguredTwice,
+    KOomDefaultAppCloseNotConfigured,
+    KPluginConfigAddedTwice,
+    KRuleConfiguredBeforePlugin,
+    KOomDefaultAppNotConfigured,
+    KOomDefaultPluginNotConfigured,
+    KNoCoeEnvFound,
+    KInvalidWgName,
+    KOomInvalidPriority,
+    KAppCloseActionEqualPriorities,
+    KClientQueueNotEmpty,
+    KClientRequestTimerActive,
+    KInvalidClientRequestType,
+    KPluginArrayIndexOutOfBounds,
+    KWindowGroupArrayIndexOutOfBounds,
+    KStartingActiveCloseAppTimer,
+    KStartingActiveAppCloseWatcher,
+    KStartingActivePluginWaiter
+    };
+
+void OomMonitorPanic(TOomMonitorPanic aReason);
+void OomConfigParserPanic(TInt aReason);
+
+#endif /*OOMPANIC_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oompluginwaiter.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMPLUGINWAITER_H_
+#define OOMPLUGINWAITER_H_
+
+#include <e32base.h>
+
+class COomRunPlugin;
+
+
+/*
+ *  A class used for waiting for a pre-determined period before completing the plugin operation
+ *  It is intended to be used to force a delay between the call to the plugin and the memory check,
+ *  thus allowing the plugin to free some memory first.
+ * 
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomPluginWaiter) : public CTimer
+    {
+public:
+    static COomPluginWaiter* NewL(TInt aMillisecondsToWait, COomRunPlugin& aCallbackClass);
+    
+    // Start the timer, it will call the plugin back when it expires
+    void Start();
+    
+protected:
+    void RunL();
+    
+    COomPluginWaiter(TInt aMillisecondsToWait, COomRunPlugin& aCallbackClass);
+    
+private:
+    TInt iMillisecondsToWait;
+    COomRunPlugin& iCallbackClass;
+    };
+
+#endif /*OOMPLUGINWAITER_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomruleconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMRULECONFIG_
+#define OOMRULECONFIG_
+
+#include <e32std.h>
+
+class COomWindowGroupList;
+
+NONSHARABLE_CLASS(MOomRuleConfig)
+    {
+public:
+    virtual TBool RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const = 0;
+    virtual TUint Priority() const = 0;
+    };
+
+#endif /*OOMRULECONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomrunplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMRUNPLUGIN_H_
+#define OOMRUNPLUGIN_H_
+
+#include "oomaction.h"
+
+class COomRunPlugin;
+class COomRunPluginConfig;
+class MOomActionObserver;
+class COomPluginWaiter;
+class COomMonitorPlugin;
+class COomMonitorPluginV2;
+class COomActionConfig;
+
+/*
+ * The OOM action of running an OOM plug-in to free up memory.
+ * 
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomRunPlugin) : public COomAction
+    {
+public:
+    static COomRunPlugin* NewL(TUint aPluginId, COomRunPluginConfig& aConfig, MOomActionObserver& aStateChangeObserver, COomMonitorPlugin& aPlugin, COomMonitorPluginV2* aV2Plugin = NULL);
+
+    ~COomRunPlugin();   
+    
+    // Run the OOM plugin in order to free memory
+    // Call the COomAction::MemoryFreed when it is done
+    virtual void FreeMemory(TInt aBytesRequested, TBool aIsDataPaged);
+    
+    // Call the memory good function on the plugin but...
+    // only if there is an outstanding FreeMemory request
+    void MemoryGood();
+        
+    inline TBool IsRunning();
+    
+    // To be called by the COomPluginWaiter
+    inline void WaitCompleted();
+    
+protected:
+    
+    void ConstructL(COomRunPluginConfig& aPluginConfig);    
+    
+    inline COomActionConfig& GetConfig();   
+    
+private:
+    
+    COomRunPlugin(TUint aPluginId, COomRunPluginConfig& aConfig, MOomActionObserver& aStateChangeObserver, COomMonitorPlugin& aPlugin, COomMonitorPluginV2* aV2Plugin);
+    
+    TUint iPluginId;
+    
+    COomMonitorPlugin& iPlugin;
+    
+    COomRunPluginConfig& iConfig;
+    
+    COomPluginWaiter* iPluginWaiter;
+    
+    // Note that this shouldn't be deleted
+    // If it is pointing to a V2 plugin then it is a cast to the same instance as iPlugin
+    COomMonitorPluginV2* iV2Plugin;
+    
+    TBool iFreeMemoryCalled; // True if FreeMemory has been called since the last call to MemoryGood
+    };
+
+#include "oomrunplugin.inl"
+
+#endif /*OOMRUNPLUGIN_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomrunplugin.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMRUNPLUGININL_H_
+#define OOMRUNPLUGININL_H_
+
+#include "oomactionconfig.h"
+#include "oompluginwaiter.h"
+#include "oomrunpluginconfig.h"
+
+inline COomActionConfig& COomRunPlugin::GetConfig()
+    {
+    return iConfig;
+    }
+
+
+inline TBool COomRunPlugin::IsRunning()
+    {
+    return iPluginWaiter->IsActive();
+    }
+
+inline void COomRunPlugin::WaitCompleted()
+    {
+    MemoryFreed(KErrNone);
+    }
+
+
+#endif /*OOMRUNPLUGININL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomrunpluginconfig.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMRUNPLUGINCONFIG_
+#define OOMRUNPLUGINCONFIG_
+
+#include "oomactionconfig.h"
+
+enum TOomPluginType
+    {
+    EOomAppPlugin,
+    EOomSystemPlugin
+    };
+
+/*
+ * The OOM action of running an OOM plug-in to free up memory.
+ */
+NONSHARABLE_CLASS(COomRunPluginConfig) : public COomActionConfig
+    {
+public:
+    static COomRunPluginConfig* NewL(TUint aPluginId, TOomPluginType aPluginType);
+    
+    TUint CalculatePluginPriority(const COomWindowGroupList& aWindowGroupList);
+    
+    inline TUint Id();
+    
+    inline void SetTargetApp(TUint aTargetAppId);
+    
+    inline TUint TargetApp() const;
+    
+    ~COomRunPluginConfig();
+    
+    // Returns ETrue if a wait period has been explicitly configured for this plugin
+    inline TBool WaitAfterPluginDefined() const;
+    
+    // Returns the configured wait after the plugin has been called
+    inline TInt WaitAfterPlugin() const;
+    
+    inline TBool CallIfTargetAppNotRunning() const;
+    
+    // Set the time to wait 
+    inline void SetWaitAfterPlugin(TInt aMillisecondsToWait);
+    
+    inline void SetCallIfTargetAppNotRunning(TBool aCallIfTargetAppNotRunning);
+    
+    inline TOomPluginType PluginType();
+    
+private:
+    COomRunPluginConfig(TUint aPluginId, TOomPluginType aPluginType);
+    
+    TUint iPluginId;
+    
+    TUint iTargetAppId;
+        
+    TBool iWaitAfterPluginDefined;
+    
+    TInt iWaitAfterPlugin; // The period to wait after a plugin has been called
+    
+    TBool iCallIfTargetAppNotRunning; 
+    
+    TOomPluginType iPluginType;
+    };
+
+#include "oomrunpluginconfig.inl"
+
+#endif /*OOMRUNPLUGINCONFIG_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomrunpluginconfig.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMRUNPLUGINCONFIGINL_H_
+#define OOMRUNPLUGINCONFIGINL_H_
+
+
+// Returns ETrue if a wait period has been explicitly configured for this plugin
+inline TBool COomRunPluginConfig::WaitAfterPluginDefined() const
+    {
+    return iWaitAfterPluginDefined;
+    }
+
+// Returns the configured wait after the plugin has been called
+inline TInt COomRunPluginConfig::WaitAfterPlugin() const
+    {
+    return iWaitAfterPlugin;
+    }
+
+inline TBool COomRunPluginConfig::CallIfTargetAppNotRunning() const
+    {
+    return iCallIfTargetAppNotRunning;
+    }
+
+// Set the time to wait 
+inline void COomRunPluginConfig::SetWaitAfterPlugin(TInt aMillisecondsToWait)
+    {
+    iWaitAfterPluginDefined = ETrue;
+    iWaitAfterPlugin = aMillisecondsToWait;
+    }
+
+inline void COomRunPluginConfig::SetCallIfTargetAppNotRunning(TBool aCallIfTargetAppNotRunning)
+    {
+    iCallIfTargetAppNotRunning = aCallIfTargetAppNotRunning;
+    }
+
+inline void COomRunPluginConfig::SetTargetApp(TUint aTargetAppId)
+    {
+    iTargetAppId = aTargetAppId;
+    }
+
+inline TUint COomRunPluginConfig::Id()
+    {
+    return  iPluginId;
+    }
+
+inline TOomPluginType COomRunPluginConfig::PluginType()
+    {
+    return iPluginType;
+    }
+
+inline TUint COomRunPluginConfig::TargetApp() const
+    {
+    return iTargetAppId;
+    }
+
+#endif /*OOMRUNPLUGINCONFIGINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomsubscribehelper.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMSUBSCRIBEHELPER_H
+#define OOMSUBSCRIBEHELPER_H
+
+#include <e32base.h>
+
+class RProperty;
+
+/**
+ *  This class is a simple active object which monitors the publish subscribe key method of calling the 
+ *  requesting that the OOM Monitor starts to free memory
+ *  
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(CSubscribeHelper) : public CActive
+    {
+public:
+    CSubscribeHelper(TCallBack aCallBack, RProperty& aProperty);
+    ~CSubscribeHelper();
+
+public: // New functions
+    void Subscribe();
+    void StopSubscribe();
+
+private: // from CActive
+    void RunL();
+    void DoCancel();
+
+private:
+    TCallBack   iCallBack;
+    RProperty&  iProperty;
+    };
+
+#endif /*OOMSUBSCRIBEHELPER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomwindowgrouplist.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  A wrapper for the window group list, adding additional functionality required by OOM Monitor v2.
+*
+*/
+
+
+#ifndef OOMWINDOWGROUPLIST_H_
+#define OOMWINDOWGROUPLIST_H_
+
+#include <e32base.h>
+#include <e32hashtab.h>
+#include <w32std.h>
+
+class CApaWindowGroupName;
+
+/**
+ *  This class holds a snapshot of the window group tree. 
+ *  
+ *  The window group tree is collapsed (see CollapseWindowGroupTree) to remove child windows as we are only 
+ *  interested in a single window group Id per application.
+ *
+ *  @lib oommonitor.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(COomWindowGroupList) : public CBase
+    {
+public:
+    
+    static COomWindowGroupList* NewL(RWsSession& aWs);
+    
+    // Update the list of window groups
+    void RefreshL();
+    
+    // Update the list of window groups, non-leaving version
+    void Refresh();
+    
+    // Return the number of application instances in this list
+    inline TUint Count() const;
+    
+    TUint AppId(TInt aIndex, TBool aResolveFromThread = EFalse) const;
+    
+    inline const RWsSession::TWindowGroupChainInfo& WgId(TInt aIndex) const;
+    
+    TTimeIntervalSeconds IdleTime(TInt aIndex) const;
+  
+    ~COomWindowGroupList();
+    
+    void SetPriorityBusy(TInt aWgId);
+    
+    void SetPriorityNormal(TInt aWgId);
+    
+    void SetPriorityHigh(TInt aWgId);
+    
+    TBool IsBusy(TInt wgIndex);
+    
+    // Returns ETrue if an application has registered itself as high priority at runtime
+    TBool IsDynamicHighPriority(TInt wgIndex);
+    
+    CApaWindowGroupName* WgName() const;
+    
+    // Find the specificed application in the window group list and return the index
+    TInt GetIndexFromAppId(TUint aAppId) const;
+    
+private:    
+
+    void CollapseWindowGroupTree();
+    
+    void RemovePropertiesForClosedWindowsL();
+
+    TInt FindParentIdL(TInt aWgId);
+
+private:
+    
+    COomWindowGroupList(RWsSession& aWs);
+    
+    void ConstructL();
+    
+    RArray<RWsSession::TWindowGroupChainInfo> iWgIds;
+    RArray<RWsSession::TWindowGroupChainInfo> iUncollapsedWgIds;
+    
+    enum TOomPriority
+        {
+        EOomPriorityNormal,
+        EOomPriorityHigh,
+        EOomPriorityBusy
+        };
+    
+    class TOomWindowGroupProperties
+        {
+    public:
+        TOomWindowGroupProperties();
+        TUint32 iIdleTickTime;
+        TOomPriority iDynamicPriority;
+        };
+        
+    RHashMap<TInt, TOomWindowGroupProperties> iWgToPropertiesMapping; // A mapping between window group IDs and the properties such as idle time and the high-priority flag
+    RHashSet<TInt> iExistingWindowIds; // Used locally in RemoveIdleTimesForClosedWindows(), declared globally because we need to reserve space    
+    
+    RWsSession& iWs;    
+        
+    CApaWindowGroupName* iWgName;
+    HBufC* iWgNameBuf;              // owned by iWgName
+    };
+
+#include "oomwindowgrouplist.inl"
+
+#endif /*OOMWINDOWGROUPLIST_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomwindowgrouplist.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#ifndef OOMWINDOWGROUPLISTINL_H_
+#define OOMWINDOWGROUPLISTINL_H_
+
+// Return the number of application instances in this list
+inline TUint COomWindowGroupList::Count() const 
+    {
+    return iWgIds.Count();    
+    }
+
+inline const RWsSession::TWindowGroupChainInfo& COomWindowGroupList::WgId(TInt aIndex) const
+    {
+    return iWgIds[aIndex];
+    }
+    
+#endif /*OOMWINDOWGROUPLISTINL_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/oomwserveventreceiver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef OOMWSERVEVENTRECEIVER_H
+#define OOMWSERVEVENTRECEIVER_H
+
+#include <w32std.h>
+class CMemoryMonitor;
+
+NONSHARABLE_CLASS(CWservEventReceiver) : public CActive
+    {
+public:
+    CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs);
+    ~CWservEventReceiver();
+    void ConstructL();
+private:
+    void Queue();
+    void DoCancel();
+    void RunL();
+private:
+    CMemoryMonitor& iMonitor;
+    RWsSession& iWs;
+    RWindowGroup iWg;
+    };
+
+#endif /*OOMWSERVEVENTRECEIVER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/traceconfiguration.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Tracing flags configuration.
+*
+*/
+
+
+#ifndef TRACECONFIGURATION_HRH
+#define TRACECONFIGURATION_HRH
+
+//-----------------------------------------------------------------------------
+// Trace definitions
+//-----------------------------------------------------------------------------
+//
+
+/**
+* Error trace enabled
+*/
+#ifdef _DEBUG
+    #define ERROR_TRACE
+#else
+    #undef ERROR_TRACE
+#endif
+
+/**
+* Info trace enabled
+*/
+#define __OOM_INFO_TRACE__
+#if defined _DEBUG && defined __OOM_INFO_TRACE__
+    #define INFO_TRACE
+    #define TIMESTAMP_TRACE
+#else
+    #undef INFO_TRACE
+    #undef TIMESTAMP_TRACE
+#endif
+
+/**
+* Function trace enabled
+*/
+#if defined _DEBUG && defined __OOM_FUNC_TRACE__
+    #define FUNC_TRACE
+#else
+    #undef FUNC_TRACE
+#endif
+
+/**
+* Timestamp tracing on
+*/
+#if defined _DEBUG && defined __OOM_TIMESTAMP_TRACE__
+    #define TIMESTAMP_TRACE
+#else
+    #undef TIMESTAMP_TRACE
+#endif
+
+/**
+* Tracing current client process and thread
+*/
+#ifdef _DEBUG
+    #define CLIENT_TRACE
+#else
+    #undef CLIENT_TRACE
+#endif
+
+/**
+* Tracing into file enabled, default RDebug
+*/
+#ifdef __OOM_TRACE_INTO_FILE__
+    #define TRACE_INTO_FILE
+#else
+    #undef TRACE_INTO_FILE
+#endif
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/inc/tracedefs.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Definitions for tracing.
+*
+*/
+
+
+#ifndef TRACEDEFS_H
+#define TRACEDEFS_H
+
+//-----------------------------------------------------------------------------
+// Constants
+//-----------------------------------------------------------------------------
+//
+
+/**
+* Prefix trace macro to complete tracing with component name.
+* Returns TDesC which can be used directly with RDebug or RFileLogger.
+*/
+#define _PREFIX_TRACE( aMsg ) TPtrC( (const TText*)L"[OOM]: " L##aMsg )
+#define _PREFIX_TRACE_2( aMsg1, aMsg2 ) TPtrC( (const TText*)L"[OOM]: " L##aMsg1 L##aMsg2 )
+
+/**
+* Prefix macro for strings
+*/
+#define _PREFIX_CHAR( aMsg ) (const char*)"[OOM]: " ##aMsg
+
+#endif // TRACEDEFS_H
--- a/sysresmonitoring/oommonitor/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/rom/oommonitor.iby	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/rom/oommonitor.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -22,6 +22,7 @@
 #include <data_caging_paths_for_iby.hrh>
 
 file=ABI_DIR\BUILD_DIR\oommonitor.dll   SHARED_LIB_DIR\oommonitor.dll
+data=ZSYSTEM\..\private\10207218\oomconfig.xml  private\10207218\oomconfig.xml
 
 #endif // OOMMONITOR_IBY
 
--- a/sysresmonitoring/oommonitor/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomIdletimerule.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+#include "oomidletimerule.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+
+COomIdleTimeRule* COomIdleTimeRule::NewL(TTimeIntervalSeconds aIdleTime, TInt aPriority)
+    {
+    FUNC_LOG;
+
+    COomIdleTimeRule* self = new (ELeave) COomIdleTimeRule(aIdleTime, aPriority);
+    return self;
+    }
+
+TBool COomIdleTimeRule::RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const
+    {
+    FUNC_LOG;
+
+    TBool applicable = EFalse;
+    if (aAppIndexInWindowGroup >= 0)
+        {
+        applicable = (aWindowGroupList.IdleTime(aAppIndexInWindowGroup) >= iIdleTime);
+        }
+    return applicable;
+    }
+
+COomIdleTimeRule::~COomIdleTimeRule()
+    {
+    FUNC_LOG;
+    }
+
+COomIdleTimeRule::COomIdleTimeRule(TTimeIntervalSeconds aIdleTime, TInt aPriority) : iIdleTime(aIdleTime), iPriority(aPriority)
+    {
+    FUNC_LOG;
+    }
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomaction.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#include "oomaction.h"
+#include "oomactionlist.h"
+#include "OomTraces.h"
+
+COomAction::~COomAction()
+    {
+    FUNC_LOG;
+    }
+
+// To be called by the derived class after the memory has been freed (or if it fails)
+void COomAction::MemoryFreed(TInt)
+    {
+    FUNC_LOG;
+    
+    iState = EOomIdle;
+    iStateChangeObserver.StateChanged();
+    }
+
+COomAction::COomAction(MOomActionObserver& aStateChangeObserver) : iStateChangeObserver(aStateChangeObserver)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomactionconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomactionconfig.h"
+#include "oomruleconfig.h"
+#include "OomTraces.h"
+
+// Add a rule
+// This class takes ownership of the given rule
+void COomActionConfig::AddRuleL(MOomRuleConfig* aRule)    // Add the configuration for a rule (e.g. an idle time rule)
+    {
+    FUNC_LOG;
+    
+    iRules.AppendL(aRule);
+    }
+	
+COomActionConfig::~COomActionConfig()
+    {
+    FUNC_LOG;
+    
+    iRules.ResetAndDestroy();
+    iRules.Close();
+    }
+
+// Utility function to return the priority for this action for the given rule
+TUint COomActionConfig::Priority(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const
+    {
+    FUNC_LOG;
+    
+    TUint priority = iDefaultPriority;
+    
+    // See if any rules apply
+    TInt index = 0;
+    while (index < iRules.Count())
+        {
+        if (iRules[index]->RuleIsApplicable(aWindowGroupList, aAppIndexInWindowGroup))
+            {
+            // If an applicable rule has been found, then apply the new priority
+            // The last applicable rule in the config file should be used
+            // This is ensured because the last rule in the list will be the last rule from the file
+            if (iRules[index]->Priority())
+                priority = iRules[index]->Priority();
+            }
+        
+        index++;
+        }
+        
+    return priority;
+    }
+    
+void COomActionConfig::ConstructL()
+    {
+    FUNC_LOG;
+    }
+	
+COomActionConfig::COomActionConfig(TInt32 aId) : iId(aId)
+    {
+    FUNC_LOG;
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomactionlist.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,712 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+
+#include <hal.h>
+#include <u32hal.h>
+#include <apgwgnam.h>
+
+#include "oommonitorplugin.h"
+#include "oommonitorplugin.hrh"
+#include "oomactionlist.h"
+#include "oomwindowgrouplist.h"
+#include "oompanic.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+#include "oommemorymonitor.h"
+#include "oommemorymonitorserver.h"
+#include "oomrunplugin.h"
+#include "oomcloseapp.h"
+#include "oomconfig.h"
+#include "oomactionref.h"
+#include "oomapplicationconfig.h"
+#include "oomcloseappconfig.h"
+#include "oomrunpluginconfig.h"
+
+const TUid  KUidMatrixMenuApp = { 0x101F4CD2 };
+
+template <class T>
+COomPluginList<T>::COomPluginList()
+    {
+    FUNC_LOG;
+    }
+
+template <class T>
+COomPluginList<T>::~COomPluginList()
+    {
+    FUNC_LOG;
+    
+    TInt count = iPlugins.Count();
+    for (TInt ii=0; ii<count; ii++)
+        {
+        TPlugin& plugin = iPlugins[ii];
+        if (plugin.iImpl)    // only if successfully added
+            REComSession::DestroyedImplementation(plugin.iDtorUid);
+        }
+    iPlugins.Close();
+    }
+
+template <class T>
+void COomPluginList<T>::ConstructL(TInt aInterfaceUid)
+    {
+    FUNC_LOG;
+    
+    RImplInfoPtrArray implArray;
+    CleanupClosePushL(implArray);
+    REComSession::ListImplementationsL(TUid::Uid(aInterfaceUid), implArray);
+
+    TInt count = implArray.Count();
+    iPlugins.ReserveL(count);
+
+    for (TInt ii=0; ii<count; ii++)
+        {
+        iPlugins.AppendL(TPlugin());
+        TPlugin& plugin = iPlugins[ii];
+        TUid uid(implArray[ii]->ImplementationUid());
+        plugin.iImpl = static_cast<T*>(REComSession::CreateImplementationL(uid, plugin.iDtorUid, NULL));
+        plugin.iUid = uid.iUid;
+        }
+    
+    CleanupStack::PopAndDestroy(&implArray);
+    }
+
+template <class T>
+COomPluginList<T>::TPlugin::TPlugin()
+: iImpl(0)
+    {
+    FUNC_LOG;
+   }
+
+template <class T>
+COomPluginList<T>* COomPluginList<T>::NewL(TInt aInterfaceUid)
+    {
+    FUNC_LOG;
+    
+    COomPluginList* self = new (ELeave) COomPluginList();
+    CleanupStack::PushL(self);
+    self->ConstructL(aInterfaceUid);
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+COomActionList* COomActionList::NewL(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs, COomConfig& aConfig)
+    {
+    FUNC_LOG;
+    
+    COomActionList* self = new (ELeave) COomActionList(aMonitor, aServer, aWs);
+    CleanupStack::PushL(self);
+    self->ConstructL(aConfig);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomActionList::~COomActionList()
+    {
+    FUNC_LOG;
+    
+    iCloseAppActions.ResetAndDestroy(); 
+    iCloseAppActions.Close();
+    iRunPluginActions.ResetAndDestroy(); 
+    iRunPluginActions.Close();
+
+    iActionRefs.Close();
+    
+    delete iPluginList;
+    delete iPluginListV2;
+    }
+
+
+
+// Creates a list of actions based on the contents of the config and the current window group list
+// Any old actions will be replaced.
+// This function may leave, however enough memory should be reserved for this process so that at least
+// some actions have been created for freeing memory, these can then be run by calling FreeMemory.
+// Note that this function will only leave in extreme circumstances, in normal usage we should have
+// enough reserved memory to build the complete action list.
+void COomActionList::BuildActionListL(COomWindowGroupList& aWindowGroupList, COomConfig& aConfig)
+    {
+    FUNC_LOG;
+    
+    if (iFreeingMemory)
+        {
+        TRACES("COomActionList::BuildActionListL Memory is currently being freed, do not build action list");
+        return;
+        }
+
+    iActionRefs.Reset();
+    iCurrentActionIndex = 0;
+    
+    aWindowGroupList.RefreshL();
+    
+    TInt actionsIndex = 0;
+    
+    // we rely on the two pluginlists not having changed since construction
+    BuildPluginActionsL(*iPluginList, aWindowGroupList, aConfig, actionsIndex);
+    BuildPluginActionsL(*iPluginListV2, aWindowGroupList, aConfig, actionsIndex);
+    
+    // Go through each item in the wglist, create an app close action for this application
+    TUint wgIndex = aWindowGroupList.Count() - 1;
+    
+    // Fix for when fast swap has focus, or pen input server has put itself into the foreground:
+    // the wg at index 1 should be considered as the foreground app.
+    // stopIndex is calculated to take this into account. 
+    TUint stopIndex = 0;
+    TUid foregroundUid = TUid::Uid(aWindowGroupList.AppId(0));
+    if ( KUidFastSwap == foregroundUid || KUidPenInputServer == foregroundUid)
+        {
+        stopIndex = 1;
+        }
+    
+    while (wgIndex > stopIndex) // Don't go down to entry stopIndex because this is the foreground window
+        {
+        COomCloseAppConfig* appCloseConfig = NULL;
+
+        CApaWindowGroupName* wgName = aWindowGroupList.WgName();
+        __ASSERT_DEBUG(wgName, OomMonitorPanic(KInvalidWgName));    
+        
+        // Get the app ID for the wglist item
+        // This sets the window group name
+        TInt32 appId = aWindowGroupList.AppId(wgIndex);    
+
+        if ( !appId || wgName->IsSystem() || wgName->Hidden() )
+            {
+            //If the UID is NULL at this point, we assume the process is not an application
+            //and therefore is not a suitable candidate for closure. 
+            //We also do not close system or hidden apps.
+      
+            //Matrix Menu is temporarily hardcoded here as a system app that can be closed
+            TUid appUid = TUid::Uid(aWindowGroupList.AppId(wgIndex, ETrue));
+            if ( KUidMatrixMenuApp == appUid)
+                {   
+                TRACES2("BuildActionListL: System App is Matrix Menu; UID = %x, wgIndex = %d", aWindowGroupList.AppId(wgIndex, ETrue),wgIndex);
+                // Find the app close config for Menu App
+                appCloseConfig = aConfig.GetApplicationConfig(appId).GetAppCloseConfig();
+                }
+            else
+                {
+                TRACES2("BuildActionListL: Not adding process to action list; UID = %x, wgIndex = %d", aWindowGroupList.AppId(wgIndex, ETrue),wgIndex);                
+                TRACES2("BuildActionListL: IsSystem = %d, Hidden = %d", wgName->IsSystem() ? 1 : 0, wgName->Hidden() ? 1 : 0);                
+                wgIndex--;
+                continue;
+                }
+            }
+        if (aWindowGroupList.IsBusy(wgIndex) || wgName->IsBusy())
+            // If the application has been flagged as busy then look up the configuration for busy apps in the config file
+            {
+            // Find the app close config for this app ID
+            appCloseConfig = aConfig.GetApplicationConfig(KOomBusyAppId).GetAppCloseConfig();
+            }
+        else if (aWindowGroupList.IsDynamicHighPriority(wgIndex))
+            // If the application has been flagged as busy then look up the configuration for busy apps in the config file
+            {
+            // Find the app close config for this app ID
+            appCloseConfig = aConfig.GetApplicationConfig(KOomHighPriorityAppId).GetAppCloseConfig();
+            }
+        else
+            // If the application hasn't been flagged as busy or high priority then look up the priority according to the config
+            {            
+            // Find the app close config for this app ID
+            appCloseConfig = aConfig.GetApplicationConfig(appId).GetAppCloseConfig();        
+            }
+
+        //If the app close config is NULL it is because there is an app specific threshold for this 
+        //app but no specific close config. Use the default app close config
+        if (!appCloseConfig)
+            {
+            appCloseConfig = aConfig.GetApplicationConfig(KOomDefaultAppId).GetAppCloseConfig();                    
+            }
+        
+        TUint priority = appCloseConfig->CalculateCloseAppPriority(aWindowGroupList, wgIndex);
+        TInt wgId = aWindowGroupList.WgId(wgIndex).iId;
+        TOomSyncMode syncMode = appCloseConfig->iSyncMode;
+        TInt ramEstimate = appCloseConfig->iRamEstimate;
+        TActionRef ref = TActionRef(TActionRef::EAppClose, priority, syncMode, ramEstimate, wgId, wgIndex);
+
+        //AppClose Actions should always have a unique prioirity determined by the application's z order.
+        TInt err = iActionRefs.InsertInOrder(ref, ComparePriorities);
+        if ((err != KErrNone) && (err != KErrAlreadyExists))
+            {
+            User::Leave(err);
+            }
+        TRACES3("BuildActionListL: Adding app to action list, Uid = %x, wgId = %d, wgIndex = %d", appId, wgId, wgIndex);                
+
+        wgIndex--;
+        }
+    
+    TRACES1("BuildActionListL: Action list built with %d items",iActionRefs.Count());    
+    }
+
+template <class T>
+void COomActionList::BuildPluginActionsL(COomPluginList<T>& aPluginList, COomWindowGroupList& aWindowGroupList, COomConfig& aConfig, TInt& aActionsIndex)
+    {
+    TInt pluginIndex = aPluginList.Count();
+
+    while (pluginIndex--)
+        {
+        // Get the config for this plugin
+        COomRunPluginConfig& pluginConfig = aConfig.GetPluginConfig(aPluginList.Uid(pluginIndex));
+        
+        TActionRef::TActionType actionType;
+        
+        if (pluginConfig.PluginType() == EOomAppPlugin)
+            {
+            if (pluginConfig.CallIfTargetAppNotRunning() == EFalse)
+                {
+                //loop through wg group and if find can't find the target app, don't add this plugin
+                TInt index = aWindowGroupList.Count() - 1;
+                TUint targetApp = pluginConfig.TargetApp();
+                TBool targetAppFound = EFalse;
+                while (index >= 0)
+                    {
+                    if (aWindowGroupList.AppId(index) == targetApp)
+                        {
+                        targetAppFound = ETrue;
+                        break;
+                        }
+                    index--;
+                    }
+                if (targetAppFound == EFalse)
+                    {
+                    aActionsIndex++;
+                    continue;
+                    }
+                }
+            actionType = TActionRef::EAppPlugin;
+            }
+        else
+            {
+            actionType = TActionRef::ESystemPlugin;
+            }
+
+        TInt priority = pluginConfig.CalculatePluginPriority(aWindowGroupList);
+        TOomSyncMode syncMode = pluginConfig.iSyncMode;
+        TInt ramEstimate = pluginConfig.iRamEstimate;
+        
+        __ASSERT_DEBUG(aActionsIndex < iRunPluginActions.Count(), OomMonitorPanic(KPluginArrayIndexOutOfBounds));    
+        TActionRef ref = TActionRef(actionType, priority, syncMode, ramEstimate, *(iRunPluginActions[aActionsIndex]), aWindowGroupList.GetIndexFromAppId(pluginConfig.TargetApp()));
+
+        //It is valid to have plugins with equal priority
+        User::LeaveIfError(iActionRefs.InsertInOrderAllowRepeats(ref, ComparePriorities));
+        
+        aActionsIndex++;
+        }
+    }
+
+
+// Execute the OOM actions according to their priority
+// Run batches of OOM actions according to their sync mode
+void COomActionList::FreeMemory(TInt aMaxPriority)
+    {
+    FUNC_LOG;
+    if (iFreeingMemory)
+        {
+        TRACES("COomActionList::FreeMemory Memory is currently being freed, do not start any more actions");
+        return;
+        }
+    
+    iMaxPriority = aMaxPriority;
+        
+    TBool memoryFreeingActionRun = EFalse;
+    
+    // Get the configured maximum number of applications that can be closed at one time
+    const COomGlobalConfig& globalConfig = CMemoryMonitor::GlobalConfig();
+    TInt maxBatchSize = globalConfig.iMaxCloseAppBatch;
+    TInt numberOfRunningActions = 0;
+    
+    TInt freeRamEstimate = 0; // The amount of free memory we expect to be free after the currently initiated operations
+    HAL::Get(HALData::EMemoryRAMFree, freeRamEstimate);
+    TUint64 freeSwapEstimate = 0;
+    if (iSwapUsageMonitored)
+        {
+        SVMSwapInfo swapInfo;
+        UserSvr::HalFunction(EHalGroupVM, EVMHalGetSwapInfo, &swapInfo, 0);
+        freeSwapEstimate = swapInfo.iSwapFree;
+        }
+        
+    while (iCurrentActionIndex < iActionRefs.Count() 
+            && iActionRefs[iCurrentActionIndex].Priority() <= aMaxPriority)
+        {
+        TActionRef ref = iActionRefs[iCurrentActionIndex];
+        COomAction* action = NULL;
+        if (ref.Type() == TActionRef::EAppClose)
+            {
+            action = iCloseAppActions[numberOfRunningActions];
+            static_cast<COomCloseApp*>(action)->Reconfigure(ref);
+            }
+        else 
+            {
+            action = &(ref.RunPlugin());
+            }
+        
+        iFreeingMemory = ETrue;
+        TRACES2("COomActionList::FreeMemory: Running action %d which has priority %d", iCurrentActionIndex,ref.Priority());
+        
+        iMonitor.SetMemoryMonitorStatusProperty(EFreeingMemory);
+        
+        // At the moment the actions don't make any difference between freeing
+        // RAM and freeing swap. So we try to free the biggest of the two.
+        // Until the plugins are updated to make a distinction between swap and RAM this is the best
+        // we can do. For application close actions the amount to try to free is ignored anyway.
+        TUint amountToTryToFree = 0;
+		if (iCurrentRamTarget > freeRamEstimate)
+			{
+			amountToTryToFree = iCurrentRamTarget - freeRamEstimate;
+			}
+        if (iSwapUsageMonitored && (iCurrentSwapTarget > freeSwapEstimate) && ((iCurrentSwapTarget - freeSwapEstimate) > amountToTryToFree))
+            {
+            amountToTryToFree = iCurrentSwapTarget - freeSwapEstimate;
+            }
+        action->FreeMemory(amountToTryToFree, iMonitor.iDataPaged);
+        memoryFreeingActionRun = ETrue;
+                
+        // Actions with EContinueIgnoreMaxBatchSize don't add to the tally of running actions
+        if (ref.SyncMode() != EContinueIgnoreMaxBatchSize)
+            numberOfRunningActions++;
+        
+        // Update our estimate of how much RAM we think we'll have after this operation
+        freeRamEstimate += ref.RamEstimate();
+         
+        // Do we estimate that we are freeing enough memory (only applies if the sync mode is "esimtate" for this action)
+        TBool estimatedEnoughMemoryFreed = EFalse;
+        if ((ref.SyncMode() == EEstimate)
+            && (freeRamEstimate >= iCurrentRamTarget))
+            {
+            estimatedEnoughMemoryFreed = ETrue;
+            }
+        
+        if ((ref.SyncMode() == ECheckRam)
+                || (numberOfRunningActions >= maxBatchSize)
+                || estimatedEnoughMemoryFreed
+                || globalConfig.ForceCheckAtPriority(iActionRefs[iCurrentActionIndex].Priority()))
+            // If this actions requires a RAM check then wait for it to complete
+            // Also force a check if we've reached the maximum number of concurrent operations
+            // Also check if we estimate that we have already freed enough memory (assuming that the sync mode is "estimate"
+            {
+            // Return from the loop - we will be called back (in COomActionList::StateChanged()) when the running actions complete
+            TRACES("COomActionList::FreeMemory: Exiting run action loop");
+            return;
+            }
+        // ... otherwise continue running actions, don't wait for any existing ones to complete
+        iCurrentActionIndex++;
+        }
+
+    
+    if (!memoryFreeingActionRun)
+        {
+        // No usable memory freeing action has been found, so we give up
+        TRACES("COomActionList::FreeMemory: No usable memory freeing action has been found");
+        iMonitor.ResetTargets();
+        TInt freeMemory = 0;
+        iMonitor.GetFreeMemory(freeMemory);
+        TInt freeSwap = 0;
+        if (iSwapUsageMonitored)
+            {
+            iMonitor.GetFreeSwapSpace(freeSwap);
+            }
+        if ((freeMemory >= iCurrentRamTarget) &&
+            ((!iSwapUsageMonitored) || (freeSwap >= iCurrentSwapTarget)))
+            {
+            SwitchOffPlugins();
+            iMonitor.SetMemoryMonitorStatusProperty(EAboveTreshHold);
+            }
+        else
+            {
+            if (iMonitor.ActionTrigger() == EClientServerRequestOptionalRam)
+                {
+                //We always switch off the plugins after an optional RAM request
+                SwitchOffPlugins();
+                }
+            iMonitor.SetMemoryMonitorStatusProperty(EBelowTreshHold);
+            }
+#ifdef CLIENT_REQUEST_QUEUE        
+        iMonitor.ActionsCompleted(freeMemory, EFalse);
+#else
+        iServer.CloseAppsFinished(freeMemory, EFalse);
+#endif
+        }
+    }
+
+void COomActionList::SwitchOffPlugins()
+    {
+    FUNC_LOG;
+    
+    TInt actionRefIndex = iActionRefs.Count();
+    
+    // Go through each of the action references, if it's a plugin action then call MemoryGood on it
+    // Note that this only results in a call to the plugin if FreeMemory has been called on this plugin since that last call to MemoryGood
+    while (actionRefIndex--)
+        {
+        if ((iActionRefs[actionRefIndex].Type() == TActionRef::EAppPlugin)
+                || (iActionRefs[actionRefIndex].Type() == TActionRef::ESystemPlugin))
+            {
+            iActionRefs[actionRefIndex].RunPlugin().MemoryGood();
+            }
+        }
+    }
+
+TInt COomActionList::ComparePriorities(const TActionRef& aPos1, const TActionRef& aPos2 )
+    {
+    FUNC_LOG;
+    
+    if (aPos1.Priority()< aPos2.Priority())
+        {
+        return -1;
+        }
+    if (aPos1.Priority() > aPos2.Priority())
+        {
+        return 1;
+        }
+    
+    // If priorities are equal then we use hardcoded rules to determine which one is run...
+
+    // All other actions are run in preference to application closures
+	if ((aPos1.Type() != TActionRef::EAppClose)
+			&& ((aPos2.Type() == TActionRef::EAppClose)))
+		{
+		return -1;
+		}
+	if ((aPos1.Type() == TActionRef::EAppClose)
+			&& ((aPos2.Type() != TActionRef::EAppClose)))
+		{
+		return 1;
+		}
+	// If both actions are application closures then the Z order is used to determine which one to run (furthest back application will be closed first)
+	if ((aPos1.Type() == TActionRef::EAppClose)
+			&& ((aPos2.Type() == TActionRef::EAppClose)))
+		{
+		if (aPos1.WgIndex() < aPos2.WgIndex())
+			{
+			return 1;
+			}
+		else
+			{
+			return -1;
+			}
+		//Two Apps should not have equal window group indexes, we panic below if this is the case.
+		}	
+	
+	// Application plugins will be run in preference to system plugins
+	if ((aPos1.Type() == TActionRef::EAppPlugin)
+			&& ((aPos2.Type() == TActionRef::ESystemPlugin)))
+		{
+		return -1;
+		}	
+	if ((aPos1.Type() == TActionRef::ESystemPlugin)
+			&& ((aPos2.Type() == TActionRef::EAppPlugin)))
+		{
+		return 1;
+		}
+		
+	// If both actions are application plugins then the Z order of the target app is used to determine which one to run (the one with the furthest back target app will be closed first)
+	// If the target app is not running then the plugin is run in preference to target apps where the target app is running
+	if ((aPos1.Type() == TActionRef::EAppPlugin)
+			&& ((aPos2.Type() == TActionRef::EAppPlugin)))
+		{
+		// When the target app is not running then the plugin will be run ahead of plugins where the target app is running
+		if ((aPos1.WgIndex() == KAppNotInWindowGroupList) && (aPos2.WgIndex() != KAppNotInWindowGroupList))
+			{
+			return -1;
+			}
+		if ((aPos1.WgIndex() != KAppNotInWindowGroupList) && (aPos2.WgIndex() == KAppNotInWindowGroupList))
+			{
+			return 1;
+			}
+		// If the target apps for both plugins are running then compare the Z order
+		if ((aPos1.WgIndex() != KAppNotInWindowGroupList) && (aPos2.WgIndex() != KAppNotInWindowGroupList))
+			{
+			if (aPos1.WgIndex() < aPos2.WgIndex())
+				{
+				return 1;
+				}
+			else
+				{
+				return -1;
+				}
+			}
+		// If the target app for neither plugin is running then they are of equal priority
+		}
+    //App Close Actions must have a unique priority.
+    __ASSERT_DEBUG((aPos1.Type() != TActionRef::EAppClose) && (aPos2.Type() != TActionRef::EAppClose), OomMonitorPanic(KAppCloseActionEqualPriorities));    
+    return 0;        
+    }
+
+void COomActionList::AppNotExiting(TInt aWgId)
+    {
+    FUNC_LOG;
+    
+    TInt index = iCloseAppActions.Count();
+    while (index--)
+        {
+        COomCloseApp* action = iCloseAppActions[index];
+        if ( (action->WgId() == aWgId) && (action->IsRunning()) )
+            {
+            TRACES1("COomCloseApp::AppNotExiting: App with window group id %d has not responded to the close event", aWgId);
+            action->CloseAppEvent();            
+            }
+        }
+    }
+
+// From MOomActionObserver
+// An action has changed state (possibly it has completed freeing memory)
+void COomActionList::StateChanged()
+    {
+    FUNC_LOG;
+    
+    TBool allActionsComplete = ETrue;
+    
+    // Note that the actions themselves are responsible for timing out if necessary.
+    TInt index = iCloseAppActions.Count();
+    while ((index--) && (allActionsComplete))
+        {
+        if (iCloseAppActions[index]->IsRunning())
+            {
+            allActionsComplete = EFalse;
+            }
+        }
+
+    index = iRunPluginActions.Count();
+    while ((index--) && (allActionsComplete))
+        {
+        if (iRunPluginActions[index]->IsRunning())
+            {
+            allActionsComplete = EFalse;
+            }
+        }
+    
+    if (allActionsComplete)
+        {
+        //All immediate actions are complete and iFreeingMemory is being set to false but
+        //SetMemoryMonitorStatusProperty will not change here because it is possible for the freeing actions to recommence
+        //in essence, all immediate actions have been completed but not all possible actions have been processed 
+        //and therefore we are still in a memory freeing state
+        iFreeingMemory = EFalse;
+        // If all of the actions are complete then check memory and run more if necessary
+        TInt freeMemory = 0;
+        iMonitor.GetFreeMemory(freeMemory);
+        TInt freeSwap = 0;
+        if (iSwapUsageMonitored)
+            {
+            iMonitor.GetFreeSwapSpace(freeSwap);
+            }
+        if ((freeMemory < iCurrentRamTarget) ||
+            (iSwapUsageMonitored && (freeSwap < iCurrentSwapTarget)))
+            // If we are still below the good-memory-threshold then continue running actions
+            {
+            iCurrentActionIndex++;
+            
+            if (iCurrentActionIndex >= iActionRefs.Count())
+                {
+                // There are no more actions to try, so we give up
+                TRACES1("COomActionList::StateChanged: All current actions complete, below good threshold with no more actions available. freeMemory=%d", freeMemory);
+                iMonitor.ResetTargets();
+                if ((freeMemory >= iCurrentRamTarget) &&
+                    ((!iSwapUsageMonitored) || (freeSwap >= iCurrentSwapTarget)))
+                    {
+                    SwitchOffPlugins();
+                    iMonitor.SetMemoryMonitorStatusProperty(EAboveTreshHold);
+                    }
+                else
+                    {
+                    if (iMonitor.ActionTrigger() == EClientServerRequestOptionalRam)
+                        {
+                        //We always switch off the plugins after an optional RAM request
+                        SwitchOffPlugins();
+                        }
+                    iMonitor.SetMemoryMonitorStatusProperty(EBelowTreshHold);
+                    }
+#ifdef CLIENT_REQUEST_QUEUE        
+                iMonitor.ActionsCompleted(freeMemory, EFalse);
+#else
+                iServer.CloseAppsFinished(freeMemory, EFalse);
+#endif
+                }
+            else
+                {
+                // There are still more actions to try, so we continue
+                TRACES1("COomActionList::StateChanged: All current actions complete, running more actions. freeMemory=%d", freeMemory);
+                FreeMemory(iMaxPriority);
+                }
+            }
+        else
+            {
+            TRACES1("COomActionList::StateChanged: All current actions complete, memory good. freeMemory=%d", freeMemory);
+            iMonitor.ResetTargets();
+            SwitchOffPlugins();
+            iMonitor.SetMemoryMonitorStatusProperty(EAboveTreshHold);
+#ifdef CLIENT_REQUEST_QUEUE        
+            iMonitor.ActionsCompleted(freeMemory, ETrue);
+#else
+            iServer.CloseAppsFinished(freeMemory, ETrue);
+#endif
+            }
+        }
+    
+    // If some actions are not yet in the idle state then we must continue to wait for them (they will notify us of a state change via a callback)
+    }
+
+COomActionList::COomActionList(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs) 
+    : iWs(aWs), iMonitor(aMonitor), iServer(aServer)
+    {
+    FUNC_LOG;
+    }
+
+void COomActionList::ConstructL(COomConfig& aConfig)
+    {
+    FUNC_LOG;
+    
+    iCurrentActionIndex = 0;
+    iSwapUsageMonitored = aConfig.GlobalConfig().iSwapUsageMonitored;
+    iFreeingMemory = EFalse;
+    
+    // Get the list of V1 and V2 plugins available to the system
+    iPluginList = COomPluginList<COomMonitorPlugin>::NewL(KOomPluginInterfaceUidValue);
+    iPluginListV2 = COomPluginList<COomMonitorPluginV2>::NewL(KOomPluginInterfaceV2UidValue);
+    // Go through each plugin in the plugin list, create a run-plugin action for each one
+    TInt pluginIndex = iPluginList->Count();
+    while (pluginIndex--)
+        {
+        // Get the config for this plugin
+        COomRunPluginConfig& pluginConfig = aConfig.GetPluginConfig(iPluginList->Uid(pluginIndex));
+        
+        // Create an action acording to the config
+        COomRunPlugin* action = COomRunPlugin::NewL(iPluginList->Uid(pluginIndex), pluginConfig, *this, iPluginList->Implementation(pluginIndex));
+        
+        iRunPluginActions.AppendL(action);
+        }
+    
+    // Go through each V2 in the V2 plugin list, create a run-plugin action for each one
+    pluginIndex = iPluginListV2->Count();
+    while (pluginIndex--)
+        {
+        // Get the config for this plugin
+        COomRunPluginConfig& pluginConfig = aConfig.GetPluginConfig(iPluginListV2->Uid(pluginIndex));
+        
+        // Create an action acording to the config
+        COomRunPlugin* action = COomRunPlugin::NewL(iPluginList->Uid(pluginIndex), pluginConfig, *this, iPluginListV2->Implementation(pluginIndex), &(iPluginListV2->Implementation(pluginIndex)));
+        
+        iRunPluginActions.AppendL(action);
+        }
+
+    //allocate empty COomCloseApp objects
+    TInt appCloseIndex = aConfig.GlobalConfig().iMaxCloseAppBatch;
+    while (appCloseIndex--)        
+        {
+        COomCloseApp* action = COomCloseApp::NewL(*this, iWs);
+        iCloseAppActions.AppendL(action);
+        }
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomactionref.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+
+#include "oomactionref.h"
+
+TActionRef::TActionRef(TActionType aType, TInt aPriority, TOomSyncMode aSyncMode, TInt aRamEstimate, COomRunPlugin& aRunPlugin, TUint aWgIndexOfTargetApp)
+    : iType(aType), iPriority(aPriority), iSyncMode(aSyncMode), iRamEstimate(aRamEstimate), iWgIndex(aWgIndexOfTargetApp), iRunPlugin(&aRunPlugin)
+    {   
+    }
+
+TActionRef::TActionRef(TActionType aType, TInt aPriority, TOomSyncMode aSyncMode, TInt aRamEstimate, TInt aWgId, TUint aWgIndex)
+: iType(aType), iPriority(aPriority), iSyncMode(aSyncMode), iRamEstimate(aRamEstimate), iWgId(aWgId), iWgIndex(aWgIndex), iRunPlugin(NULL)
+    {   
+    }
+
+    
+TActionRef::TActionType TActionRef::Type() const
+    {
+    return iType;
+    }
+
+TUint TActionRef::Priority() const
+    {
+    return iPriority;
+    }
+
+TOomSyncMode TActionRef::SyncMode() const
+    {
+    return iSyncMode;
+    }
+    
+TInt TActionRef::RamEstimate() const
+    {
+    return iRamEstimate;
+    }
+
+TInt TActionRef::WgId() const
+    {
+    return iWgId;
+    }
+
+TInt TActionRef::WgIndex() const
+    {
+    return iWgIndex;
+    }
+
+COomRunPlugin& TActionRef::RunPlugin()
+    {
+    return *iRunPlugin;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomappclosetimer.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Timer class which implements a timeout for an application close action.
+*
+*/
+
+
+#include "oomappclosetimer.h"
+#include "oomcloseapp.h"
+#include "OomTraces.h"
+
+COomAppCloseTimer* COomAppCloseTimer::NewL(COomCloseApp& aMonitor)
+    {
+    FUNC_LOG;
+
+    COomAppCloseTimer* self = new (ELeave) COomAppCloseTimer(aMonitor);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomAppCloseTimer::COomAppCloseTimer(COomCloseApp& aMonitor)
+: CTimer(CActive::EPriorityStandard), iMonitor(aMonitor)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+void COomAppCloseTimer::RunL()
+    {
+    FUNC_LOG;
+
+    iMonitor.CloseAppEvent();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomappclosewatcher.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  An active object which watches for app close actions successfully completing.
+*
+*/
+
+
+
+#include "oomappclosewatcher.h"
+#include "oomcloseapp.h"
+#include "OomTraces.h"
+
+COomAppCloseWatcher::COomAppCloseWatcher(COomCloseApp& aMonitor) : CActive(CActive::EPriorityStandard), iMonitor(aMonitor)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+COomAppCloseWatcher::~COomAppCloseWatcher()
+    {
+    FUNC_LOG;
+
+    Cancel();
+    }
+
+void COomAppCloseWatcher::Start(const TApaTask& aTask)
+    {
+    FUNC_LOG;
+
+    if (!IsActive())
+        {
+        TInt err = iThread.Open(aTask.ThreadId());
+        if (err == KErrNone)
+            {
+            iOriginalProcessPriority = iThread.ProcessPriority();
+            iThread.SetProcessPriority(EPriorityForeground);
+            iThread.Logon(iStatus);
+            SetActive();
+            }
+        else
+            {
+            TRequestStatus* s = &iStatus;
+            User::RequestComplete(s, err);
+            SetActive();
+            }
+        }
+    }
+
+void COomAppCloseWatcher::DoCancel()
+    {
+    FUNC_LOG;
+
+    iThread.LogonCancel(iStatus);
+    iThread.SetProcessPriority(iOriginalProcessPriority);
+    iThread.Close();
+    }
+
+void COomAppCloseWatcher::RunL()
+    {
+    FUNC_LOG;
+
+    if (iThread.Handle())
+        iThread.SetProcessPriority(iOriginalProcessPriority);
+    iThread.Close();
+    // Experimentation shows that memory may take up to 40ms
+    // to be released back to the system after app thread close.
+    // Using this delay should minimise the number of apps that
+    // need to be closed to recover the necessary memory.
+    const TInt KAppTidyUpDelay = 40000;
+    User::After(KAppTidyUpDelay);
+    iMonitor.CloseAppEvent();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomapplicationconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomapplicationconfig.h"
+#include "oomconstants.hrh"
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+COomApplicationConfig* COomApplicationConfig::NewL(TUint aApplicationId)
+    {
+    FUNC_LOG;
+
+    COomApplicationConfig* self = new (ELeave) COomApplicationConfig(aApplicationId);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Add a rule
+// This class takes ownership of the given rule
+// This rule applies to this application itself (and not a plugin associated with this application)
+// The rule would usually apply to an "application close" event
+void COomApplicationConfig::AddRuleL(MOomRuleConfig* aRule)
+    {   
+    FUNC_LOG;
+
+   __ASSERT_ALWAYS(iCloseAppConfig, OomMonitorPanic(KRuleConfiguredBeforeApplication));
+    
+    iCloseAppConfig->AddRuleL(aRule);
+    }
+
+COomApplicationConfig::~COomApplicationConfig()
+    {
+    FUNC_LOG;
+
+    delete iCloseAppConfig;
+    }
+
+void COomApplicationConfig::ConstructL()
+    {
+    FUNC_LOG;
+
+    iGoodRamThreshold = KOomThresholdUnset;
+    iLowRamThreshold = KOomThresholdUnset;  
+    iGoodSwapThreshold = KOomThresholdUnset;
+    iLowSwapThreshold = KOomThresholdUnset;  
+    }
+
+COomApplicationConfig::COomApplicationConfig(TUint aApplicationId) : iApplicationId(aApplicationId)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomclientrequestqueue.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,359 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  COomClientRequestQueue.cpp.
+*
+*/
+
+
+
+#include "oomclientrequestqueue.h"
+#include "OomTraces.h"
+#include "oomsubscribehelper.h"
+#include "oompanic.h"
+#include "oommemorymonitor.h"
+#include <UikonInternalPSKeys.h>
+
+const TInt KOomWatchDogStatusIdle = -1;
+const TInt KClientTimeToFreeMemory = 500000; //microseconds
+
+COomClientRequestQueue::COomClientRequestQueue(CMemoryMonitor& aMonitor)
+    :iQueue(_FOFF(TClientRequest,iLink)),
+    iMonitor(aMonitor)
+    {
+    FUNC_LOG;
+    }
+
+COomClientRequestQueue::~COomClientRequestQueue()
+    {
+    FUNC_LOG;
+    
+    if (iWatchdogStatusSubscriber)
+        {
+        iWatchdogStatusSubscriber->StopSubscribe();
+        }
+    iWatchdogStatusProperty.Close();
+    delete iWatchdogStatusSubscriber;
+
+    if (iClientRequestTimer)
+        {
+        iClientRequestTimer->Cancel();
+        }
+    delete iClientRequestTimer;
+    
+    TClientRequest* request;
+    TSglQueIter<TClientRequest> iter(iQueue);
+    iter.SetToFirst(); 
+    while (iter)
+        {
+        request = iter++;
+        iQueue.Remove(*request);
+        delete request;
+        };
+    }
+
+COomClientRequestQueue* COomClientRequestQueue::NewL(CMemoryMonitor& aMonitor)
+    {
+    FUNC_LOG;
+    
+    COomClientRequestQueue* self = new (ELeave) COomClientRequestQueue(aMonitor);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self); 
+    return self;
+    }
+
+void COomClientRequestQueue::ConstructL()
+    {
+    FUNC_LOG;
+    
+    TInt err = iWatchdogStatusProperty.Attach(KPSUidUikon, KUikOOMWatchdogStatus);
+
+    TRACES1("COomClientRequestQueue::ConstructL: KUikOOMWatchdogStatus err = %d", err);
+    
+    err = iWatchdogStatusProperty.Set(KOomWatchDogStatusIdle);
+    
+    iWatchdogStatusSubscriber = new (ELeave) CSubscribeHelper(TCallBack(WatchdogStatusStatusChanged, this), iWatchdogStatusProperty);
+    iWatchdogStatusSubscriber->Subscribe();
+
+    
+    iClientRequestTimer = COomClientRequestTimer::NewL(*this);    
+    }
+
+void COomClientRequestQueue::RequestFreeMemoryL(const RMessage2& aMessage)
+    {
+    FUNC_LOG;
+    
+    TClientRequest* request = new (ELeave) TClientRequest(EClientServerRequestFreeMemory, aMessage);
+    CleanupStack::PushL(request);
+    AddClientRequestL(*request);
+    CleanupStack::Pop(request);
+    }
+
+void COomClientRequestQueue::RequestOptionalRamL(const RMessage2& aMessage)
+    {
+    FUNC_LOG;
+    
+    TClientRequest* request = new (ELeave) TClientRequest(EClientServerRequestOptionalRam, aMessage);
+    CleanupStack::PushL(request);
+    AddClientRequestL(*request);
+    CleanupStack::Pop(request);
+    }
+
+TInt COomClientRequestQueue::WatchdogStatusStatusChanged(TAny* aPtr)
+    {
+    FUNC_LOG;
+
+    COomClientRequestQueue* self = static_cast<COomClientRequestQueue*>(aPtr);
+    if (self)
+        {
+        self->HandleWatchdogStatusCallBack();
+        }
+    return KErrNone;
+    }
+
+void COomClientRequestQueue::HandleWatchdogStatusCallBack()
+    {
+    FUNC_LOG;
+
+    // Someone has set the key to request some free memory.
+    TInt memoryRequested = 0;
+    iWatchdogStatusProperty.Get(memoryRequested);
+
+    // Try to free the RAM.
+    if (memoryRequested >= 1)
+        {
+        TClientRequest request = TClientRequest(EPublishAndSubscribe, memoryRequested);
+        TRAP_IGNORE(AddClientRequestL(request));
+        }
+    // Set the key back to KOomWatchDogStatusIdle to indicate we're done.
+    iWatchdogStatusProperty.Set(KOomWatchDogStatusIdle);
+    }
+
+// The new request is added to the queue, then we have the following conditions: 
+// 1. A client request is currently being processed
+// 2. The last client request completed less than KClientTimeToFreeMemory microseconds ago -> start the timer
+// 3. The timer has already been started
+// 4. none of the above -> process this request
+void COomClientRequestQueue::AddClientRequestL(TClientRequest& request)
+    {
+    FUNC_LOG;
+    
+    iQueue.AddLast(request);
+ 
+    if ( !iClientRequestActive && !iClientRequestTimer->IsActive() )
+        {
+        TTime now;
+        now.UniversalTime();
+        TInt64 interval64 = (now.MicroSecondsFrom(iLastClientCompletedTime)).Int64();
+        TRACES3("COomClientRequestQueue::AddClientRequestL: now = %Ld, iLastClientCompletedTime = %Ld, interval64 = %Ld",
+                now.Int64(), iLastClientCompletedTime.Int64(), interval64);
+               
+        if ( interval64 < 0)        
+            {
+            //If the system time is moved backwards we lose the information about when the last request was 
+            //made, so we wait for KClientTimeToFreeMemory microseconds
+            iClientRequestTimer->After(TTimeIntervalMicroSeconds32(KClientTimeToFreeMemory));            
+            }
+        else if ( interval64 < KClientTimeToFreeMemory)
+            {            
+            //The last completed client is given KClientTimeToFreeMemory microseconds to allocate the memory 
+            //it requested
+            iClientRequestTimer->After(TTimeIntervalMicroSeconds32(interval64));
+            }
+        else 
+            {
+            StartClientRequestL();
+            }        
+        }
+    }
+
+void COomClientRequestQueue::StartClientRequestL()
+    {    
+    FUNC_LOG;
+    
+    iClientRequestActive = ETrue;
+
+    TClientRequest* request = iQueue.First();
+    
+    RThread clientThread;
+    TInt err =  (request->iRequestFreeRamMessage).Client(clientThread);
+    TBool dataPaged = EFalse;
+    if(err == KErrNone)
+        {
+        RProcess processName;
+        err = clientThread.Process(processName);
+        dataPaged = processName.DefaultDataPaged();
+        }
+    else
+        {
+        OomMonitorPanic(KInvalidClientRequestType);
+        }
+    
+    
+    switch (request->iClientRequestType)
+        {
+        case EClientServerRequestOptionalRam:
+            {
+            TInt pluginId = request->iRequestFreeRamMessage.Int2();
+            iMonitor.FreeOptionalRamL(request->iBytesRequested, pluginId, dataPaged);
+            break;
+            }
+        case EClientServerRequestFreeMemory:
+            iMonitor.RequestFreeMemoryL(request->iBytesRequested, dataPaged);
+            break;
+        case EPublishAndSubscribe:
+            iMonitor.RequestFreeMemoryPandSL(request->iBytesRequested);
+            break;
+        default:
+            OomMonitorPanic(KInvalidClientRequestType);
+            break;
+        }
+    }
+
+CMemoryMonitor& COomClientRequestQueue::Monitor()
+    {
+    FUNC_LOG;
+    
+    return iMonitor;
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, TInt aBytesRequested)    
+    : iClientRequestType(aClientRequestType), iBytesRequested(aBytesRequested)   
+    {
+    FUNC_LOG;
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, const RMessage2& aRequestFreeRam)    
+    : iClientRequestType(aClientRequestType), iRequestFreeRamMessage(aRequestFreeRam)
+    {
+    FUNC_LOG;
+    
+    iBytesRequested = aRequestFreeRam.Int0();
+    }
+
+void COomClientRequestQueue::ActionsCompleted(TInt aBytesFree, TBool aMemoryGood)
+    {
+    FUNC_LOG;
+    
+    if (iClientRequestActive)
+        {
+#ifdef _DEBUG
+        TSglQueIter<TClientRequest> iter(iQueue);
+        iter.SetToFirst();
+        TClientRequest* req;
+        while (iter)
+            {
+            req = iter++;
+            TActionTriggerType crt = req->iClientRequestType;
+            TInt bytes = req->iBytesRequested;
+            TRACES2("COomClientRequestQueue::ActionsCompleted Printing Queue: Type = %d, Bytes Requested = %d", crt, bytes);
+            };
+#endif 
+
+        __ASSERT_DEBUG(!iQueue.IsEmpty(), OomMonitorPanic(KClientQueueNotEmpty));        
+        __ASSERT_DEBUG(!iClientRequestTimer->IsActive(), OomMonitorPanic(KClientRequestTimerActive));        
+
+        TClientRequest* request = iQueue.First();
+        RMessage2 message;
+        
+        switch (request->iClientRequestType)
+            {
+            case EClientServerRequestOptionalRam:
+                message = request->iRequestFreeRamMessage;
+                if (!message.IsNull())
+                    {
+                    TInt memoryAvailable = aBytesFree - iMonitor.GoodRamThreshold();
+                    TInt minimumNeeded = message.Int1();
+                    if (memoryAvailable >= minimumNeeded)
+                        {
+                        message.Complete(memoryAvailable);
+                        }
+                    else
+                        {
+                        message.Complete(KErrNoMemory);
+                        }
+                    }
+                break;
+            case EClientServerRequestFreeMemory:
+                message = request->iRequestFreeRamMessage;
+                if (!message.IsNull())
+                    {
+                    // If memory available is greater than the requested RAM then complete with the amount of free memory, otherwise complete with KErrNoMemory
+                    message.Complete(aMemoryGood ? KErrNone : KErrNoMemory);        
+                    }
+                break;
+            case EPublishAndSubscribe:
+                // No action required for P&S key
+                break; 
+            default:
+                OomMonitorPanic(KInvalidClientRequestType);
+                break;
+            }
+            
+        iClientRequestActive = EFalse;
+        iQueue.Remove(*request);
+        delete request;
+
+        iLastClientCompletedTime.UniversalTime();
+        
+        if (!iQueue.IsEmpty())
+            {
+            //We give the client KClientTimeToFreeMemory microseconds to free the memory it requested before 
+            //processing the next request
+            iClientRequestTimer->After(TTimeIntervalMicroSeconds32(KClientTimeToFreeMemory));
+            }
+        }    
+    }
+
+void COomClientRequestQueue::RequestTimerCallbackL()
+    {
+    FUNC_LOG;
+    
+    __ASSERT_DEBUG(!iQueue.IsEmpty(), OomMonitorPanic(KClientQueueNotEmpty));        
+    
+    StartClientRequestL();
+    }
+
+COomClientRequestTimer* COomClientRequestTimer::NewL(COomClientRequestQueue& aQueue)
+    {
+    FUNC_LOG;
+
+    COomClientRequestTimer* self = new (ELeave) COomClientRequestTimer(aQueue);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomClientRequestTimer::COomClientRequestTimer(COomClientRequestQueue& aQueue)
+: CTimer(CActive::EPriorityStandard), iClientRequestQueue(aQueue)
+    {
+    FUNC_LOG;
+    
+    CActiveScheduler::Add(this);
+    }
+
+
+void COomClientRequestTimer::RunL()
+    {
+    FUNC_LOG;
+    
+    iClientRequestQueue.RequestTimerCallbackL();
+    }
+
+
+
+
+    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomcloseapp.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#include <apgtask.h>
+
+#include "oomcloseapp.h"
+#include "OomTraces.h"
+#include "oomappclosetimer.h"
+#include "oomappclosewatcher.h"
+#include "oomactionref.h"
+#include "oommemorymonitor.h"
+#include "oomconstants.hrh"
+#include "oompanic.h"
+
+COomCloseApp* COomCloseApp::NewL(MOomActionObserver& aStateChangeObserver, RWsSession& aWs)
+    {
+    FUNC_LOG;
+
+    COomCloseApp* self = new (ELeave) COomCloseApp(aStateChangeObserver, aWs);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Close the application in order to free memory
+// Call the COomAction::MemoryFreed when it is done
+void COomCloseApp::FreeMemory(TInt, TBool aIsDataPaged)
+    {
+    FUNC_LOG;
+
+    iAppCloserRunning = ETrue;
+    
+    // Set the TApaTask to the app
+    iCurrentTask.SetWgId(iWgId);
+    
+    __ASSERT_DEBUG(!iAppCloseTimer->IsActive(), OomMonitorPanic(KStartingActiveCloseAppTimer));    
+    __ASSERT_DEBUG(!iAppCloseWatcher->IsActive(), OomMonitorPanic(KStartingActiveAppCloseWatcher));    
+    // Start a timer and the thread watcher 
+    iAppCloseTimer->After(CMemoryMonitor::GlobalConfig().iMaxAppExitTime * KMicrosecondsInMillisecond);
+    iAppCloseWatcher->Start(iCurrentTask);
+    // Tell the app to close
+    TRACES1("COomCloseApp::FreeMemory: Closing app with window group id %d",iWgId);
+    
+    RThread thread;
+    TInt err=thread.Open(iCurrentTask.ThreadId());
+    if (!err)
+        {
+        RProcess process;
+        thread.Process(process);
+        TBool isDataPaged = process.DefaultDataPaged();
+        if((aIsDataPaged && isDataPaged) || (!aIsDataPaged && !isDataPaged ))
+            {
+            iCurrentTask.EndTask();
+            }
+        }
+    }
+
+COomCloseApp::~COomCloseApp()
+    {
+    FUNC_LOG;
+
+    if (iAppCloseTimer)
+        iAppCloseTimer->Cancel();
+    
+    if (iAppCloseWatcher)
+        iAppCloseWatcher->Cancel();
+    
+    delete iAppCloseTimer;    
+    delete iAppCloseWatcher;
+    }
+
+// Callback from COomAppCloseWatcher and COomAppCloseTimer
+void COomCloseApp::CloseAppEvent()
+    {
+    FUNC_LOG;
+
+    // The application has closed (or we have a timeout)
+    iAppCloserRunning = EFalse;
+    
+    if (iAppCloseTimer)
+        iAppCloseTimer->Cancel();
+    if (iAppCloseWatcher)
+        iAppCloseWatcher->Cancel(); 
+    
+    MemoryFreed(KErrNone);
+    }
+
+void COomCloseApp::Reconfigure(const TActionRef& aRef)
+    {
+    FUNC_LOG;
+
+    iWgId = aRef.WgId();    
+    }
+
+void COomCloseApp::ConstructL()
+    {
+    FUNC_LOG;
+
+    iAppCloseTimer = COomAppCloseTimer::NewL(*this);
+    iAppCloseWatcher = new(ELeave) COomAppCloseWatcher(*this);
+    }
+        
+COomCloseApp::COomCloseApp(MOomActionObserver& aStateChangeObserver, RWsSession& aWs)
+                                : COomAction(aStateChangeObserver), iCurrentTask(aWs)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomcloseappconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+COomCloseAppConfig* COomCloseAppConfig::NewL(TInt32 aId)
+    {
+    FUNC_LOG;
+
+    COomCloseAppConfig* self = new (ELeave) COomCloseAppConfig(aId);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomCloseAppConfig::~COomCloseAppConfig()
+    {
+    FUNC_LOG;
+    }
+
+COomCloseAppConfig::COomCloseAppConfig(TInt32 aId) : COomActionConfig(aId)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,195 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include <e32hashtab.h>
+
+#include "oomconfig.h"
+#include "oomconstants.hrh"
+#include "oomapplicationconfig.h"
+#include "oomrunpluginconfig.h"
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+COomConfig* COomConfig::NewL()
+    {
+    FUNC_LOG;
+
+    COomConfig* self = new (ELeave) COomConfig;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+// Add the configuration for an application closure.
+// This class takes ownership of this action.
+void COomConfig::SetAppCloseConfigL(COomCloseAppConfig* aActionConfig)
+    {
+    FUNC_LOG;
+
+    // Find the right application config (if there is one) for the app
+    // The map actually contains pointers for values, so we get pointers to pointers here...
+    COomApplicationConfig** applicationConfigPointer = iApplicationToConfigMapping.Find(aActionConfig->iId);
+    
+    // Used to de-reference the pointer-to-pointer, hopefully making the code more readable
+    COomApplicationConfig* applicationConfig = NULL;
+    
+    // Create a new COomApplicationConfig if there isn't one for this app
+    if (!applicationConfigPointer)
+        {
+        applicationConfig = COomApplicationConfig::NewL(aActionConfig->iId);
+        iApplicationToConfigMapping.InsertL(aActionConfig->iId, applicationConfig);
+        }
+    else
+        {
+        applicationConfig = *applicationConfigPointer;
+        }
+    
+    // Append the action config to the appropriate list (the list for the relevant application)
+    applicationConfig->SetAppCloseConfig(aActionConfig);    
+    }
+
+// Add the configuration for a plugin action.
+// This class takes ownership of the configuration object.
+void COomConfig::AddPluginConfigL(COomRunPluginConfig* aPluginConfig)
+    {
+    FUNC_LOG;
+
+    // Check if the plugin has already been added, if so then this is an error in configuration (something is trying to add the same plugin twice)
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginConfig->Id());
+    if (runPluginConfig)
+        {
+        OomMonitorPanic(KPluginConfigAddedTwice);
+        }
+    
+    iPluginToConfigMapping.InsertL(aPluginConfig->Id(), aPluginConfig);
+    
+    }
+
+// Add a rule
+// This class takes ownership of the given rule
+// This rule applies to the specified application (and not a plugin associated with this application)
+// The rule would usually apply to an "application close" event
+void COomConfig::AddApplicationRuleL(TUint aTargetAppId, MOomRuleConfig* aRule)
+    {
+    FUNC_LOG;
+
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aTargetAppId);
+    
+    if (applicationConfig)
+        {
+        (*applicationConfig)->AddRuleL(aRule);
+        }
+    else
+        {
+        OomMonitorPanic(KRuleConfiguredBeforeApplication);
+        }
+    }
+
+// Add a rule for a plugin
+// This class takes ownership of the given rule
+// This rule is applied to the plugin with the specified ID
+void COomConfig::AddPluginRuleL(TUint aPluginId, MOomRuleConfig* aRule)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginId);
+    
+    if (runPluginConfig)
+        {
+        (*runPluginConfig)->AddRuleL(aRule);
+        }
+    else
+        {
+        OomMonitorPanic(KRuleConfiguredBeforePlugin);
+        }   
+    }
+
+// Add this application config - this class takes ownership of it
+// Application config includes settings for a particular application, e.g. whether or not it can be closed
+void COomConfig::AddApplicationConfigL(COomApplicationConfig* aApplicationConfig)
+    {
+    FUNC_LOG;
+
+    // Check if the application has already been added, if so then this is an error in configuration (something is trying to add the same app twice)
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aApplicationConfig->Id());
+    if (applicationConfig)
+        {
+        OomMonitorPanic(KAppConfigAddedTwice);
+        }
+    
+    iApplicationToConfigMapping.InsertL(aApplicationConfig->Id(), aApplicationConfig);
+    }
+
+// Get the list of configured actions for the given app id
+// If no specific actions have been configured for this application then the default action is returned
+COomApplicationConfig& COomConfig::GetApplicationConfig(TInt32 aAppId)
+    {
+    FUNC_LOG;
+
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aAppId);
+    
+    if (!applicationConfig)
+        applicationConfig = iApplicationToConfigMapping.Find(KOomDefaultAppId);
+    
+    // The default app configuration should always exist
+    __ASSERT_ALWAYS(applicationConfig, OomMonitorPanic(KOomDefaultAppNotConfigured));
+    
+    return *(*applicationConfig);
+    }
+
+// Get the plugin configuration for the given plugin id
+// If no specific actions have been configured for this plugin then the default plugin configuration is returned
+COomRunPluginConfig& COomConfig::GetPluginConfig(TInt32 aPluginId)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginId);
+    
+    if (!runPluginConfig)
+        runPluginConfig = iPluginToConfigMapping.Find(KOomDefaultPluginId);
+    
+    // The default app configuration should always exist
+    __ASSERT_ALWAYS(runPluginConfig, OomMonitorPanic(KOomDefaultPluginNotConfigured));
+    
+    return *(*runPluginConfig);
+    }
+
+COomConfig::~COomConfig()
+    {
+    FUNC_LOG;
+
+    // Iterate through the hash map deleting all of the items
+    RHashMap<TInt32, COomApplicationConfig*>::TIter iterator(iApplicationToConfigMapping);
+    while (iterator.NextValue())
+        delete iterator.CurrentValue();
+    
+    // Iterate through the plugiun hash map deleting all of the items
+    RHashMap<TInt32, COomRunPluginConfig*>::TIter pluginIterator(iPluginToConfigMapping);
+    while (pluginIterator.NextValue())
+        delete pluginIterator.CurrentValue();
+    
+    iApplicationToConfigMapping.Close();
+    }
+
+void COomConfig::ConstructL()
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomconfigparser.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,1149 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The parser for the OOM configuration file.
+*
+*/
+#include <e32base.h>
+#include <xml/parser.h>
+
+#include "oomconfigparser.h"
+#include "oompanic.h"
+#include "OomTraces.h"
+#include "oomidletimerule.h"
+#include "oomforegroundrule.h"
+#include "oomconstants.hrh"
+#include "oomapplicationconfig.h"
+#include "oomcloseappconfig.h"
+#include "oomconfig.h"
+#include "oomrunpluginconfig.h"
+
+enum TOomConfigParserPanic
+{
+KOomErrMoreThanOneOomConfig = 0,
+KOomErrGlobalSettingsMustComeAfterRoot,
+KOomErrAppSettingsMustComeAfterGlobalSettings,
+KOomErrCloseAppSettingsMustComeAfterAppSettings,
+KOomErrAppIdleSettingsMustComeAfterAppCloseSettings,
+KOomErrLowRamErrorInGlobalSettings,
+KOomErrGoodRamErrorInGlobalSettings,
+KOomErrSwapUsageMonitoredErrorInGlobalSettings,
+KOomErrLowSwapErrorInGlobalSettings,
+KOomErrGoodSwapErrorInGlobalSettings,
+KOomErrMaxCloseErrorInGlobalSettings,
+KOomErrDefaultPriorityErrorInGlobalSettings,
+KOomErrMissingUidFromAppCloseConfig,
+KOomErrMissingPriorityFromAppCloseConfig,
+KOomErrMissingSyncModeFromAppCloseConfig,
+KOomErrMissingEstimateFromAppCloseConfig,
+KOomErrInvalidSyncMode,
+KOomErrMissingSyncModeInAppCloseConfig,
+KOomErrBadOrMissingPriorityInAppIdleRule,
+KOomErrBadOrMissingIdleTimeInAppIdleRule,
+KOomErrBadOrMissingUidInAppIdleRule,
+KOomErrBadNeverCloseValue,
+KOomErrBadOrMissingUidInAppConfig,
+KOomErrBadOrMissingPriorityInAppCloseConfig,
+KOomErrBadLowThresholdValueForAppConfig,
+KOomErrBadGoodThresholdValueForAppConfig,
+KOomErrSystemPluginSettingsMustComeAfterAppCloseSettings,
+KOomErrAppPluginSettingsMustComeAfterSystemPluginSettings,
+KOomErrAppPluginIdleTimeRulesMustComeAfterAppPluginSettings,
+KOomErrBadOrMissingUidInAppCloseConfig,
+KOomErrBadOrMissingUidInSystemPluginConfig,
+KOomErrBadOrMissingPriorityInSystemPluginConfig,
+KOomErrBadOrMissingTargetAppIdInAppPluginConfig,
+KOomErrBadOrMissingUidInAppPluginConfig,
+KOomErrBadOrMissingPriorityInAppPluginConfig,
+KOomErrBadOrMissingPriorityInPluginIdleRule,
+KOomErrBadOrMissingIdleTimeInPluginIdleRule,
+KOomErrBadOrMissingUidInPluginIdleRule,
+KOomErrBadOrMissingUidInForegroundAppRule,
+KOomErrBadOrMissingPriorityInForegroundAppRule,
+KOomErrBadOrMissingTargetAppIdInForegroundAppRule,
+KOomErrDefaultWaitAfterPluginInGlobalSettings,
+KOomErrBadOrMissingPriorityInForceCheck,
+KOomErrOomRulesMustComeLast,
+KOomErrBadPluginWaitTime,
+KOomErrBadXml,
+KOomErrAppCloseIdleRuleOutsideAppCloseElement,
+KOomErrForegroundAppRuleOutsideAppCloseElement,
+KOomErrPluginIdleRuleOutsideAppPluginElement,
+KOomErrPluginForegroundRuleOutsidePluginElement,
+KOomErrBadCallIfTargetAppNotRunning
+};
+
+const TInt KOomXmlFileBufferSize = 1024;
+const TInt KOomMaxAppExitTime = 2000;
+const TInt KBytesInMegabyte = 1024;
+#ifdef __WINS__
+const TInt KEmulatorTickDivisor = 5; // The tick is 5 times slower on the emulator than on the phone
+#endif
+using namespace Xml;
+
+// Mime type of the parsed document
+_LIT8(KXmlMimeType, "text/xml");
+
+_LIT(KOomConfigFilePath, ":\\private\\10207218\\oomconfig.xml");
+_LIT(KRomDrive, "z");
+
+// Element strings
+// Root
+_LIT8(KOomConfigOomConfig, "oom_config");
+
+// Global settings
+_LIT8(KOomConfigGlobalSettings, "global_settings");
+_LIT8(KOomConfigForceCheckAtPriority, "force_check");
+
+// App settings
+_LIT8(KOomConfigAppSettings, "app_specific_thresholds");
+_LIT8(KOomConfigApp, "app");
+
+// App close settings
+_LIT8(KOomConfigAppCloseSettings, "app_close_settings");
+_LIT8(KOomConfigCloseApp, "close_app");
+
+// App close idle time
+_LIT8(KOomConfigAppCloseIdlePriority, "app_close_idle_priority");
+
+_LIT8(KOomConfigForegroundAppPriority, "foreground_app_priority");
+
+// Global settings attribute names
+_LIT8(KOomAttributeLowRamThreshold, "low_ram_threshold");
+_LIT8(KOomAttributeGoodRamThreshold, "good_ram_threshold");
+_LIT8(KOomAttributeSwapUsageMonitored, "swap_usage_monitored");
+_LIT8(KOomAttributeLowSwapThreshold, "low_swap_threshold");
+_LIT8(KOomAttributeGoodSwapThreshold, "good_swap_threshold");
+_LIT8(KOomAttributeMaxAppCloseBatch, "max_app_close_batch");
+_LIT8(KOomAttributeDefaultWaitAfterPlugin, "default_wait_after_plugin");
+_LIT8(KOomAttributeMaxAppExitTime , "max_app_exit_time");
+
+// System plugins 
+
+_LIT8(KOomAttributeSystemPluginSettings, "system_plugin_settings");
+_LIT8(KOomAttributeSystemPlugin, "system_plugin");
+
+// Application plugins
+
+_LIT8(KOomAttributeAppPluginSettings, "app_plugin_settings");
+_LIT8(KOomAttributeAppPlugin, "app_plugin");
+
+// Plugin idle time rules
+
+_LIT8(KOomAttributePluginIdlePriority, "plugin_idle_priority");
+
+// Plugin foreground app rules
+_LIT8(KOomAttributePluginForegroundAppPriority, "plugin_foreground_app_priority");
+
+// Atribute names
+_LIT8(KOomAttibuteUid, "uid");
+_LIT8(KOomAttibuteSyncMode, "sync_mode");
+_LIT8(KOomAttibutePriority, "priority");
+_LIT8(KOomAttibuteRamEstimate, "ram_estimate");
+
+_LIT8(KOomConfigSyncModeContinue, "continue");
+_LIT8(KOomConfigSyncModeCheck, "check");
+_LIT8(KOomConfigSyncModeEstimate, "estimate");
+
+_LIT8(KOomAttibuteIdleTime, "idle_time");
+_LIT8(KOomAttibuteIdlePriority, "priority");
+
+_LIT8(KOomAttibuteNeverClose, "NEVER_CLOSE");
+
+_LIT8(KOomAttributeTargetAppId, "target_app_id");
+
+_LIT8(KOomAttributeWait, "wait");
+
+_LIT8(KOomAttributeIfForegroundAppId, "if_foreground_app_id");
+
+_LIT8(KOomAttributeCallIfTargetAppNotRunning, "call_if_target_app_not_running");
+_LIT8(KOomAttributeTrue, "true");
+_LIT8(KOomAttributeFalse, "false");
+_LIT8(KOomAttribute0, "0");
+_LIT8(KOomAttribute1, "1");
+
+
+_LIT8(KOomConfigDefaultAppUid, "DEFAULT_APP");
+_LIT8(KOomConfigDefaultPluginUid, "DEFAULT_PLUGIN");
+_LIT8(KOomConfigTargetAppValue, "TARGET_APP");
+
+_LIT8(KOomConfigBusyAppUid, "BUSY_APP");
+_LIT8(KOomConfigHighPriorityAppUid, "HIGH_PRIORITY_APP");
+
+COomConfigParser::COomConfigParser(COomConfig& aConfig, RFs& aFs) : iConfig(aConfig), iFs(aFs), iState(EOomParsingStateNone)
+    {
+    }
+
+void COomConfigParser::ParseL()
+    {
+    FUNC_LOG;
+
+    TRACES("COomConfigParser::ParseL: Parsing Config File");
+    
+    CParser* parser = CParser::NewLC(KXmlMimeType, *this);
+    
+    RFile configFile;
+    TFileName configFileName;
+    TChar driveChar = iFs.GetSystemDriveChar();
+    configFileName.Append(driveChar);
+    configFileName.Append(KOomConfigFilePath);
+    if (configFile.Open(iFs, configFileName, EFileShareExclusive) != KErrNone)
+        {
+        configFileName.Replace(0,1,KRomDrive); //replace 'c' with 'z'
+        User::LeaveIfError(configFile.Open(iFs, configFileName, EFileShareExclusive));
+        }
+    CleanupClosePushL(configFile);
+    
+    TBuf8<KOomXmlFileBufferSize> fileBuffer;
+    TInt bytesRead;
+    do
+        {
+        User::LeaveIfError(configFile.Read(fileBuffer));
+        bytesRead = fileBuffer.Size();
+        
+        parser->ParseL(fileBuffer);
+        
+        } while (bytesRead != 0);
+    
+    CleanupStack::PopAndDestroy(2, parser); // config file - automatically closes it
+                                            // parser
+            
+    TRACES("COomConfigParser::ParseL: Finished Parsing Config File");    
+    }
+
+void COomConfigParser::OnStartDocumentL(const RDocumentParameters&, TInt)
+    {
+    FUNC_LOG;
+    }
+
+void COomConfigParser::OnEndDocumentL(TInt)
+    {
+    FUNC_LOG;
+    }
+
+
+void COomConfigParser::OnEndElementL(const RTagInfo&, TInt)
+    {
+    }
+
+void COomConfigParser::OnContentL(const TDesC8&, TInt)
+    {
+    }
+
+void COomConfigParser::OnStartPrefixMappingL(const RString&, const RString&, 
+                                   TInt)
+    {
+    }
+
+void COomConfigParser::OnEndPrefixMappingL(const RString&, TInt)
+    {
+    }
+
+void COomConfigParser::OnIgnorableWhiteSpaceL(const TDesC8&, TInt)
+    {
+    }
+
+void COomConfigParser::OnSkippedEntityL(const RString&, TInt)
+    {
+    }
+
+void COomConfigParser::OnProcessingInstructionL(const TDesC8&, const TDesC8&, 
+                                      TInt)
+    {
+    }
+
+void COomConfigParser::OnError(TInt)
+    {
+    }
+
+TAny* COomConfigParser::GetExtendedInterface(const TInt32)
+    {
+    return 0;
+    }
+
+void COomConfigParser::OnStartElementL(const RTagInfo& aElement, const RAttributeArray& aAttributes, 
+                             TInt aErrorCode)
+    {
+    if (aErrorCode != KErrNone)
+        ConfigError(KOomErrBadXml);
+    
+    StartElementL(aElement.LocalName().DesC(), aAttributes);
+    }
+
+void COomConfigParser::StartElementL(const TDesC8& aLocalName,
+                                        const RAttributeArray& aAttributes)
+    {
+    // Root
+    if (aLocalName == KOomConfigOomConfig)
+        {
+        if (iState != EOomParsingStateNone)
+            ConfigError(KOomErrMoreThanOneOomConfig);
+        
+        ChangeState(EOomParsingStateRoot);
+        }
+    // Parse main elements
+    else if (aLocalName == KOomConfigGlobalSettings)
+        {
+        if (iState != EOomParsingStateRoot)
+            ConfigError(KOomErrGlobalSettingsMustComeAfterRoot);
+        
+        SetGlobalSettings(aAttributes);
+        
+        ChangeState(EOomParsingStateGlobalSettings);
+        }
+    else if (aLocalName == KOomConfigAppSettings)
+        {
+        ChangeState(EOomParsingStateAppSettings);
+        }
+    else if (aLocalName == KOomConfigAppCloseSettings)
+        {
+        ChangeState(EOomParsingStateAppCloseSettings);
+        }
+    else if (aLocalName == KOomAttributeSystemPluginSettings)
+        {
+        ChangeState(EOomParsingStateSystemPluginSettings);
+        }
+    else if (aLocalName == KOomAttributeAppPluginSettings)
+        {
+        ChangeState(EOomParsingStateAppPluginSettings);
+        }
+    // Parse actual configuration elements
+    else if (aLocalName == KOomConfigForceCheckAtPriority)
+        {
+        SetForceCheckConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigApp)
+        {
+        SetAppConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigCloseApp)
+        {
+        SetCloseAppConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigAppCloseIdlePriority)
+        {
+        CheckState(EOomParsingStateAppCloseSettings, KOomErrAppCloseIdleRuleOutsideAppCloseElement);
+        SetAppCloseIdlePriorityConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigForegroundAppPriority)
+        {
+        CheckState(EOomParsingStateAppCloseSettings, KOomErrForegroundAppRuleOutsideAppCloseElement);
+        SetForegroundAppPriorityL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributeSystemPlugin)
+        {
+        SetSystemPluginConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributeAppPlugin)
+        {
+        SetAppPluginConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributePluginIdlePriority)
+        {
+        CheckState(EOomParsingStateAppPluginSettings, KOomErrPluginIdleRuleOutsideAppPluginElement);
+        SetPluginIdlePriorityL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributePluginForegroundAppPriority)
+        {
+        CheckState(EOomParsingStateAppPluginSettings, EOomParsingStateSystemPluginSettings, KOomErrPluginForegroundRuleOutsidePluginElement);
+        SetPluginForegroundAppPriorityL(aAttributes);
+        }
+    
+    }
+
+void COomConfigParser::ConfigError(TInt aError)
+    {
+    OomConfigParserPanic(aError);
+    }
+
+void COomConfigParser::SetGlobalSettings(const RAttributeArray& aAttributes)
+    {
+    TInt defaultLowMemoryThreshold;    
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowRamThreshold, defaultLowMemoryThreshold);
+
+    if (err == KErrNone)
+        iConfig.SetDefaultLowRamThreshold(defaultLowMemoryThreshold * KBytesInMegabyte);
+    else
+        ConfigError(KOomErrLowRamErrorInGlobalSettings);
+    
+    if (err == KErrNone)
+        {
+        TInt defaultGoodMemoryThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodRamThreshold, defaultGoodMemoryThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultGoodRamThreshold(defaultGoodMemoryThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrGoodRamErrorInGlobalSettings);
+        }
+
+    if (err == KErrNone)
+        {
+        TInt swapUsageMonitored;
+        TInt err = GetValueFromBooleanAttributeList(aAttributes, KOomAttributeSwapUsageMonitored, swapUsageMonitored);
+        
+        if (err == KErrNone)
+            iConfig.SetSwapUsageMonitored(swapUsageMonitored);
+        else
+            ConfigError(KOomErrSwapUsageMonitoredErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultLowSwapThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowSwapThreshold, defaultLowSwapThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultLowSwapThreshold(defaultLowSwapThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrLowSwapErrorInGlobalSettings);
+        }
+
+    if (err == KErrNone)
+        {
+        TInt defaultGoodSwapThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodSwapThreshold, defaultGoodSwapThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultGoodSwapThreshold(defaultGoodSwapThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrGoodSwapErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultMaxCloseAppBatch;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeMaxAppCloseBatch, defaultMaxCloseAppBatch);
+
+        if (err == KErrNone)
+            iConfig.SetMaxCloseAppBatch(defaultMaxCloseAppBatch);
+        else
+            ConfigError(KOomErrMaxCloseErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultWaitAfterPlugin;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeDefaultWaitAfterPlugin, defaultWaitAfterPlugin);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultWaitAfterPlugin(defaultWaitAfterPlugin);
+        else
+            ConfigError(KOomErrDefaultWaitAfterPluginInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt maxAppExitTime;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeMaxAppExitTime, maxAppExitTime);
+
+        if (err == KErrNone)
+            iConfig.SetMaxAppExitTime(maxAppExitTime);
+        else
+            iConfig.SetMaxAppExitTime(KOomMaxAppExitTime);
+        }
+    }
+
+void COomConfigParser::SetForceCheckConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint priority;
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+    if (err == KErrNone)
+        {
+        iConfig.GlobalConfig().AddForceCheckPriorityL(priority);
+        }
+    else
+        {
+        ConfigError(KOomErrBadOrMissingPriorityInForceCheck);    
+        }
+    }
+
+void COomConfigParser::SetAppConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    COomApplicationConfig* appConfig = NULL;
+    
+    TInt err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppConfig);
+        }
+    else
+        iParentUid = uid;
+
+    appConfig = COomApplicationConfig::NewL(uid);
+    CleanupStack::PushL(appConfig);    
+        
+    // Set the app specific memory thresholds (if they exist)
+    // Get the app specific low threshold
+    if (err == KErrNone)
+        {
+        TUint lowThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowRamThreshold, lowThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iLowRamThreshold = lowThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrBadLowThresholdValueForAppConfig);
+        }
+
+    // Get the app specific good threshold
+    if (err == KErrNone)
+        {
+        TUint goodThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodRamThreshold, goodThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iGoodRamThreshold = goodThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrBadGoodThresholdValueForAppConfig);
+        }
+    
+    // Set the app specific swap thresholds (if they exist)
+    // Get the app specific low swap threshold
+    if (err == KErrNone)
+        {
+        TUint lowThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowSwapThreshold, lowThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iLowSwapThreshold = lowThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+            
+        if (err != KErrNone)
+            ConfigError(KOomErrBadLowThresholdValueForAppConfig);
+        }
+
+    // Get the app specific good swapthreshold
+    if (err == KErrNone)
+        {
+        TUint goodThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodSwapThreshold, goodThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iGoodSwapThreshold = goodThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+            
+        if (err != KErrNone)
+            ConfigError(KOomErrBadGoodThresholdValueForAppConfig);
+        }  
+        
+    // Add the applciation config to the main config
+    if ((err == KErrNone) && (appConfig))
+        {
+        iConfig.AddApplicationConfigL(appConfig);
+        }
+    
+    if (appConfig)
+        CleanupStack::Pop(appConfig);
+    }
+
+void COomConfigParser::SetCloseAppConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppCloseConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomCloseAppConfig* closeAppConfig = COomCloseAppConfig::NewL(uid); // Radio UID
+    CleanupStack::PushL(closeAppConfig);
+
+     if (err == KErrNone)
+        {
+        // Check that we have a priority for the added app_close event
+        // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            closeAppConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppCloseConfig);    
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        TPtrC8 syncModeString;
+        err = GetValueFromAttributeList(aAttributes, KOomAttibuteSyncMode, syncModeString);
+        
+        if (err == KErrNone)
+            {
+            TOomSyncMode syncMode = EContinue;
+            
+            if (syncModeString == KOomConfigSyncModeContinue)
+                syncMode = EContinue;
+            else if (syncModeString == KOomConfigSyncModeCheck)
+                syncMode = ECheckRam;
+            else if (syncModeString == KOomConfigSyncModeEstimate)
+                syncMode = EEstimate;
+            else
+                ConfigError(KOomErrInvalidSyncMode);
+            
+            if (err == KErrNone)
+                {
+                closeAppConfig->iSyncMode = syncMode;
+                }
+            }
+        else
+            {
+            ConfigError(KOomErrMissingSyncModeInAppCloseConfig);
+            }
+        }
+    
+    
+    if (err == KErrNone)
+        {
+        // If we have a default priority attribute then add it, otherwise use the global default priority
+        TInt ramEstimate;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteRamEstimate, ramEstimate);
+        if ((err == KErrNotFound) && (closeAppConfig->iSyncMode != EEstimate))
+            {
+            err = KErrNone;
+            }
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrMissingEstimateFromAppCloseConfig);
+        else
+            closeAppConfig->iRamEstimate = ramEstimate * KBytesInMegabyte;
+           }
+
+    if (err == KErrNone)
+        iConfig.SetAppCloseConfigL(closeAppConfig);
+    
+    CleanupStack::Pop(closeAppConfig);
+    }
+
+void COomConfigParser::SetAppCloseIdlePriorityConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TInt idleTime;
+    TUint priority;
+
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+    TInt err = KErrNone;
+    
+    err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdleTime, idleTime);
+    
+#ifdef __WINS__
+    // The tick is 5 times slower on the emulator than on the phone
+    idleTime = idleTime / KEmulatorTickDivisor;
+#endif
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingIdleTimeInAppIdleRule);
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppIdleRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomIdleTimeRule* idleRule = COomIdleTimeRule::NewL(idleTime, priority);
+        CleanupStack::PushL(idleRule);
+        iConfig.AddApplicationRuleL(uid, idleRule);
+        CleanupStack::Pop(idleRule);
+        }
+    }
+
+void COomConfigParser::SetForegroundAppPriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint appUid;
+    TUint targetAppId;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    appUid = iParentUid;
+
+    // Check that we have a priority for the added system plugin action
+    // Specifying a priority is mandatory
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttributeIfForegroundAppId, targetAppId);
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingTargetAppIdInForegroundAppRule);    
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInForegroundAppRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(targetAppId, priority);
+        CleanupStack::PushL(foregroundRule);
+        iConfig.AddApplicationRuleL(appUid, foregroundRule);
+        CleanupStack::Pop(foregroundRule);
+        }
+
+    }
+
+void COomConfigParser::SetSystemPluginConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInSystemPluginConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(uid, EOomSystemPlugin);
+    CleanupStack::PushL(pluginConfig);
+
+     if (err == KErrNone)
+        {
+        // Check that we have a priority for the added system plugin action
+        // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInSystemPluginConfig);    
+            }
+        }
+     
+     if (err == KErrNone)
+        {
+        TInt wait;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeWait, wait);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetWaitAfterPlugin(wait);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            ConfigError(KOomErrBadPluginWaitTime);
+        }
+     
+     if (err == KErrNone)
+         {
+         // Get the config for the sync mode for this plugin (if one is specified) and set it
+         SetPluginSyncMode(aAttributes, *pluginConfig);
+         }
+
+     iConfig.AddPluginConfigL(pluginConfig);
+     
+     CleanupStack::Pop(pluginConfig);
+    }
+
+void COomConfigParser::SetAppPluginConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppPluginConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(uid, EOomAppPlugin);
+    CleanupStack::PushL(pluginConfig);
+
+    if (err == KErrNone)
+       {
+       // Check that we have a priority for the added system plugin action
+       // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppPluginConfig);    
+            }
+       }
+
+    if (err == KErrNone)
+       {
+       // Check that we have a priority for the added system plugin action
+       // Specifying a priority is mandatory
+        TUint targetAppId;
+        err = GetValueFromHexAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppId);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetTargetApp(targetAppId);
+            iParentTargetApp = targetAppId;
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingTargetAppIdInAppPluginConfig);    
+            }
+       }
+    
+    if (err == KErrNone)
+       {
+       TInt wait;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeWait, wait);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetWaitAfterPlugin(wait);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            ConfigError(KOomErrBadPluginWaitTime);
+       }    
+    
+    if (err == KErrNone)
+        {
+        // Get the config for the sync mode for this plugin (if one is specified) and set it
+        SetPluginSyncMode(aAttributes, *pluginConfig);
+        
+        TBool targetAppNotRunning;
+        err = GetValueFromBooleanAttributeList(aAttributes, KOomAttributeCallIfTargetAppNotRunning, targetAppNotRunning);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetCallIfTargetAppNotRunning(targetAppNotRunning);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            {
+            ConfigError(KOomErrBadCallIfTargetAppNotRunning);
+            }
+        }
+
+     iConfig.AddPluginConfigL(pluginConfig);
+     
+     CleanupStack::Pop(pluginConfig);
+
+    }
+
+void COomConfigParser::SetPluginIdlePriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TInt idleTime;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+    err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdleTime, idleTime);
+    
+#ifdef __WINS__
+    // The tick is 5 times slower on the emulator than on the phone
+    idleTime = idleTime / KEmulatorTickDivisor;
+#endif
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingIdleTimeInPluginIdleRule);
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInPluginIdleRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomIdleTimeRule* idleRule = COomIdleTimeRule::NewL(idleTime, priority);
+        CleanupStack::PushL(idleRule);
+        iConfig.AddPluginRuleL(uid, idleRule);
+        CleanupStack::Pop(idleRule);
+        }
+    }
+
+void COomConfigParser::SetPluginForegroundAppPriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TUint targetAppId;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+        // Check that we have a priority for the added system plugin action
+        // Specifying a priority is mandatory
+        
+    TPtrC8 targetAppString;
+    err = GetValueFromAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppString);
+    if ((err == KErrNone)
+            && (targetAppString == KOomConfigTargetAppValue)
+            && (iState == EOomParsingStateAppPluginSettings))
+        // If the target app is specified as "TARGET_APP" then we use the target app from the parent entry
+        {
+        targetAppId = iParentTargetApp;
+        }
+    else
+        {
+        err = GetValueFromHexAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppId);
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingTargetAppIdInForegroundAppRule);    
+            }
+        }
+     
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInForegroundAppRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(targetAppId, priority);
+        CleanupStack::PushL(foregroundRule);
+        iConfig.AddPluginRuleL(uid, foregroundRule);
+        CleanupStack::Pop(foregroundRule);
+        }
+    }
+
+// Finds an attribute of the given name and gets its value
+// A value is only valid as long as AAtrributes is valid (and unmodified)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+TInt COomConfigParser::GetValueFromAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TPtrC8& aValue)
+    {
+    TInt index = aAttributes.Count();
+    TBool attributeFound = EFalse;
+    while ((index--) && (!attributeFound))
+        {
+        if (aAttributes[index].Attribute().LocalName().DesC() == aName)
+            {
+            attributeFound = ETrue;
+            aValue.Set(aAttributes[index].Value().DesC());
+            }
+        }
+    
+    TInt err = KErrNone;
+    
+    if (!attributeFound)
+        err = KErrNotFound;
+    
+    return err;
+    }
+
+// Finds an attribute of the given name and gets its value (coverting the string hex value to a UInt)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+// Returns KErrCorrupt if the string is not a valid hex number
+TInt COomConfigParser::GetValueFromHexAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue)
+    {
+    TPtrC8 hexString;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, hexString);
+
+    if (hexString == KOomConfigDefaultAppUid)
+        {
+        // This is a special case
+        // When we hit this value in a hex field then we return the default app UID
+        aValue = KOomDefaultAppId;
+        }
+    else if (hexString == KOomConfigDefaultPluginUid)
+        {
+        // This is a special case
+        // When we hit this value in a hex field then we return the default app UID
+        aValue = KOomDefaultPluginId;
+        }
+    else if (hexString == KOomConfigBusyAppUid)
+        {
+        aValue = KOomBusyAppId;
+        }
+    else if (hexString == KOomConfigHighPriorityAppUid)
+        {
+        aValue = KOomHighPriorityAppId;
+        }
+    else if (err == KErrNone)
+        {
+        TLex8 hexLex(hexString);
+        err = hexLex.Val(aValue, EHex);
+        if (err != KErrNone)
+            err = KErrCorrupt;
+        }
+    
+    return err;
+    }
+
+// Finds an attribute of the given name and gets its value (coverting the string decimal value to a UInt)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+// Returns KErrCorrupt if the string is not a valid decimal number
+TInt COomConfigParser::GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue)
+    {
+    TPtrC8 decimalString;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, decimalString);
+
+    if (err == KErrNone)
+        {
+        if (decimalString == KOomAttibuteNeverClose)
+            aValue = KOomPriorityInfinate;
+        else
+            {
+            TLex8 decimalLex(decimalString);
+            err = decimalLex.Val(aValue, EDecimal);
+            if (err != KErrNone)
+                err = KErrCorrupt;
+            }
+        }
+    
+    return err;
+    }
+
+TInt COomConfigParser::GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TInt& aValue)
+    {
+    TUint uintValue;
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, aName, uintValue);
+    aValue = uintValue;
+    return err;
+    }
+
+TInt COomConfigParser::GetValueFromBooleanAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TBool& aValue)
+    {
+    TPtrC8 ptrValue;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, ptrValue);
+    if (err == KErrNone)
+        {
+        if (ptrValue == KOomAttributeTrue || ptrValue == KOomAttribute1)
+            {
+            aValue = ETrue;
+            }
+        else if (ptrValue == KOomAttributeFalse || ptrValue == KOomAttribute0)
+            {
+            aValue = EFalse;
+            }
+        else
+            {
+            err = KErrCorrupt;
+            }
+        }
+    return err;
+    }
+
+void COomConfigParser::SetPluginSyncMode(const RAttributeArray& aAttributes, COomRunPluginConfig& aRunPluginConfig)
+    {
+    TPtrC8 syncModeString;
+    TInt err = GetValueFromAttributeList(aAttributes, KOomAttibuteSyncMode, syncModeString);
+    
+    if (err == KErrNone)
+        // If there is no specified sync mode then leave it as the default
+        {
+        TOomSyncMode syncMode = EContinue;
+        
+        if (syncModeString == KOomConfigSyncModeContinue)
+            syncMode = EContinueIgnoreMaxBatchSize;
+        else if (syncModeString == KOomConfigSyncModeCheck)
+            syncMode = ECheckRam;
+        else if (syncModeString == KOomConfigSyncModeEstimate)
+            syncMode = EEstimate;
+        else
+            ConfigError(KOomErrInvalidSyncMode);
+        
+        if (err == KErrNone)
+            {
+            aRunPluginConfig.iSyncMode = syncMode;
+            }
+        }
+    }
+
+// Check that the current state is as expected
+// If not then the specified config error is generated
+void COomConfigParser::CheckState(TOomParsingState aExpectedState, TInt aError)
+    {
+    if (iState != aExpectedState)
+        ConfigError(aError);
+    }
+
+// Check that the current state is as expected
+// If not then the specified config error is generated
+// This version checks to ensure that the current state matches either of the passed in states
+void COomConfigParser::CheckState(TOomParsingState aExpectedState1, TOomParsingState aExpectedState2, TInt aError)
+    {
+    if ((iState != aExpectedState1)
+            && (iState != aExpectedState2))
+        ConfigError(aError);
+    }
+
+void COomConfigParser::ChangeState(TOomParsingState aState)
+    {
+    iState = aState;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomforegroundrule.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#include "oomforegroundrule.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+
+// If the specified target app is in the foreground then apply the specified priority
+COomForegroundRule::COomForegroundRule(TInt aTargetAppId, TInt aPriority) : iTargetAppId(aTargetAppId), iPriority(aPriority)
+    {
+    FUNC_LOG;
+    }
+
+TBool COomForegroundRule::RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt /*aAppIndexInWindowGroup*/) const
+    {
+    FUNC_LOG;
+
+    TBool ruleIsApplicable = EFalse;
+    if (aWindowGroupList.Count() > 0)
+        {
+        // If the target app is in the foreground then this rule is applicable
+        TUint foregroundAppId = aWindowGroupList.AppId(0, ETrue);
+        if (foregroundAppId == iTargetAppId)
+            ruleIsApplicable = ETrue;
+        }
+    
+    return ruleIsApplicable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomglobalconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomglobalconfig.h"
+#include "OomTraces.h"
+
+COomGlobalConfig::~COomGlobalConfig()
+    {
+    FUNC_LOG;
+
+    iForceCheckPriorities.Close();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomlog.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,306 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Logging functionality for OOM monitor profiling.
+*
+*/
+
+
+
+#ifdef _DEBUG
+
+#include <hal.h>
+#include <w32std.h>
+#include <e32std.h>
+#include <apgwgnam.h>
+#include <flogger.h>
+
+#include "oomlog.h"
+#include "oompanic.h"
+
+_LIT8(KMemorySampleLoggingString, "%d");
+_LIT8(KMemorySampleLoggingSeparator, ", ");
+
+_LIT8(KCrLf, "\r\n");
+
+_LIT8(KOomLogCancel, "Sampling triggered before previous sampling has completed. Results so far: ");
+
+_LIT(KOomLogFile, ":\\logs\\OOM\\liveoommonitor.txt");
+_LIT(KOomOldLogFile, ":\\logs\\OOM\\oommonitor.txt");
+
+const TInt KMaxTimeStampSize = 30;
+_LIT(KTimeStampFormat, "%F    %H:%T:%S");
+
+_LIT(KDummyWgName, "20");
+
+_LIT8(KUidPreamble, "App UIDs:");
+_LIT8(KUidFormat, " 0x%x");
+
+const TInt KPreallocatedSpaceForAppList = 50;
+
+const TInt KMaxUidBufferSize = 1024;
+
+COomLogger* COomLogger::NewL(RWsSession& aWs, RFs& aFs)
+    {
+    COomLogger* self = new (ELeave) COomLogger(aWs, aFs);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+// Start logging the available memory every n micro seconds
+// Firstly a list of the app IDs is written to the log (foreground app first)
+// Note that the log is created in memory (to a pre-allocated buffer) and flushed out after it is complete
+// the samples are saved in CSV format so that they can easily be cut and pasted to plot graphs etc.
+void COomLogger::StartL()
+    {
+    // If the log file doesn't exist then don't attempt to sample anything
+    if (!iIsOpen)
+        return;
+    
+    // If we are already active then cancel first
+    if (IsActive())
+        Cancel();
+    
+    iWriteBuffer.Zero();
+    
+    iStartTime.HomeTime();
+    
+    // Log the timestamp
+    TBuf16<KMaxTimeStampSize> timeStamp;
+    iStartTime.FormatL(timeStamp, KTimeStampFormat);
+    TBuf8<KMaxTimeStampSize> timeStamp8;
+    timeStamp8.Copy(timeStamp);
+    Write(timeStamp8);
+    
+    // Log all of the application IDs (foreground app first, then the other apps moving towards the back)
+    LogApplicationIds();
+
+    // Then, record the free memory
+    // Note that this is done to a buffer so as not to affect the timing too much
+    LogFreeMemory();
+    
+    // Finally, set a timer to record the memory every n microseconds
+    HighRes(KTimeBetweenMemorySamples);
+    }
+
+// From CTimer / CActice
+void COomLogger::RunL()
+    {
+    TTime currentTime;
+    currentTime.HomeTime();
+    TTimeIntervalMicroSeconds loggingDuration = currentTime.MicroSecondsFrom(iStartTime);
+    TTimeIntervalMicroSeconds samplingDuration = KSamplingDurationUint;
+    if (loggingDuration > samplingDuration)
+        // If we have passed the desired logging duration then write the data we have collected
+        {
+        Write(iWriteBuffer);
+        }
+    else
+        {
+        // If we haven't passed the desired logging duration then record the free memory
+        // Note that this is recorded into a buffer and then logged later
+        iWriteBuffer.Append(KMemorySampleLoggingSeparator);
+        LogFreeMemory();
+        
+        // Wait before taking another memory sample
+        HighRes(KTimeBetweenMemorySamples);
+        }
+    }
+
+void COomLogger::DoCancel()
+    {
+    CTimer::DoCancel();
+    
+    Write(KOomLogCancel);
+    Write(iWriteBuffer);
+    }
+
+COomLogger::~COomLogger()
+    {
+    iWgIds.Close();
+ // delete iWgName; // Not owned
+    if (iIsOpen)
+        iFile.Close();
+
+    }
+
+void COomLogger::Write(const TDesC8& aBuffer)
+    {
+    if (iIsOpen)
+        {
+        iFile.Write(aBuffer);
+    
+        // Add the line break
+        iFile.Write(KCrLf);
+        }
+    }
+
+void COomLogger::LogApplicationIds()
+    {
+    // get all window groups, with info about parents
+    TInt numGroups = iWs.NumWindowGroups(0);
+    TRAPD(err, iWgIds.ReserveL(numGroups));
+    
+    if (err != KErrNone)
+        return;
+    
+    if (iWs.WindowGroupList(0, &iWgIds) != KErrNone)
+        return;
+
+    // Remove all child window groups, promote parents to foremost child position
+    ColapseWindowGroupTree();
+    
+    // Go through each window group ID in the list, get the Uid of each app then log it
+    // Start with the foreground application
+    TInt index = 0;
+    
+    TUid uid;
+    
+    TBuf8<KMaxUidBufferSize> uidBuffer;
+    
+    uidBuffer = KUidPreamble;
+    
+    while (index < numGroups)
+        {
+        __ASSERT_DEBUG(index < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+        uid = GetUidFromWindowGroupId(iWgIds[index].iId);
+        
+        uidBuffer.AppendFormat(KUidFormat, uid.iUid);
+        
+        index++;
+        }
+    
+    Write(uidBuffer);
+    }
+
+void COomLogger::LogFreeMemory()
+    {
+    TMemoryInfoV1Buf meminfo;
+    UserHal::MemoryInfo(meminfo);
+    TInt freeMem = meminfo().iFreeRamInBytes;
+
+    // Save the free memory to a descriptor which will be written later
+    iWriteBuffer.AppendFormat(KMemorySampleLoggingString(), freeMem);
+    }
+
+COomLogger::COomLogger(RWsSession& aWs, RFs& aFs) : CTimer(EPriorityStandard), iWs(aWs), iFs(aFs)
+    {
+    }
+
+void COomLogger::ConstructL()
+    {
+    CActiveScheduler::Add(this);
+    
+    CTimer::ConstructL();
+    
+    TFileName oldLogFileName;
+    TFileName newLogFileName;
+    TChar driveChar = iFs.GetSystemDriveChar();
+    oldLogFileName.Append(driveChar);
+    oldLogFileName.Append(KOomOldLogFile);
+    newLogFileName.Append(driveChar);
+    newLogFileName.Append(KOomLogFile);
+    // If there is an existing log then copy it, this will be the log that can be sent to the PC
+    // Without this feature then you can't get the logs off of the device because the "live" log will always be is use.
+    CFileMan* fileMan = CFileMan::NewL(iFs);
+    CleanupStack::PushL(fileMan);
+    fileMan->Copy(newLogFileName, oldLogFileName);
+    CleanupStack::PopAndDestroy(fileMan);
+    
+    // Create the log file, or open it if is already exists (note that the directory must already be present
+    TInt err = iFile.Create(iFs, KOomLogFile, EFileShareAny | EFileWrite);
+    if (KErrNone != err)
+        {
+        err = iFile.Open(iFs, KOomLogFile, EFileShareAny | EFileWrite);
+        }
+    
+    if (KErrNone == err)
+        {
+        iIsOpen = ETrue;
+        
+        // Append all new data to the end of the file
+        TInt offset = 0;
+        iFile.Seek(ESeekEnd, offset);
+        }
+    
+    // Reserve enough space to build an app list later.
+    iWgIds.ReserveL(KPreallocatedSpaceForAppList);
+    // Reserve enough space for CApaWindowGroupName.
+    iWgName = CApaWindowGroupName::NewL(iWs);
+    iWgNameBuf = HBufC::NewL(CApaWindowGroupName::EMaxLength);
+    (*iWgNameBuf) = KDummyWgName;
+    iWgName->SetWindowGroupName(iWgNameBuf);    // iWgName takes ownership of iWgNameBuf*/
+
+    }
+
+void COomLogger::ColapseWindowGroupTree()
+    {
+    // start from the front, wg count can reduce as loop runs
+    for (TInt ii=0; ii<iWgIds.Count();)
+        {
+        RWsSession::TWindowGroupChainInfo& info = iWgIds[ii];
+        if (info.iParentId > 0)        // wg has a parent
+            {
+            // Look for the parent position
+            TInt parentPos = ii;        // use child pos as not-found signal
+            TInt count = iWgIds.Count();
+            for (TInt jj=0; jj<count; jj++)
+                {
+                if (iWgIds[jj].iId == info.iParentId)
+                    {
+                    parentPos = jj;
+                    break;
+                    }
+                }
+
+            if (parentPos > ii)  // parent should be moved forward
+                {
+                iWgIds[ii] = iWgIds[parentPos];
+                iWgIds.Remove(parentPos);
+                }
+            else if (parentPos < ii)  // parent is already ahead of child, remove child
+                iWgIds.Remove(ii);
+            else                    // parent not found, skip
+                ii++;
+            }
+        else    // wg does not have a parent, skip
+            ii++;
+        }
+    }
+
+TUid COomLogger::GetUidFromWindowGroupId(TInt aWgId)
+    {
+    // get the app's details
+    TPtr wgPtr(iWgNameBuf->Des());
+    
+    TUid uid;
+    
+    TInt err = iWs.GetWindowGroupNameFromIdentifier(aWgId, wgPtr);
+    
+    if (KErrNone != err)
+        // If there is an error then set the UID to 0;
+        {
+        uid.iUid = 0;
+        }
+    else
+        {
+        iWgName->SetWindowGroupName(iWgNameBuf);
+        uid = iWgName->AppUid(); // This UID comes from the app, not the mmp!
+        }
+    
+    return uid;
+    }
+
+#endif //_DEBUG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oommemorymonitor.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,523 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#include <hal.h>
+#include <u32hal.h>
+
+#include <UikonInternalPSKeys.h>
+
+#include "oommemorymonitor.h"
+#include "oommonitorplugin.h"
+#include "oomsubscribehelper.h"
+#include "oomconfig.h"
+#include "oommemorymonitorserver.h"
+#include "oomconfigparser.h"
+#include "oomactionlist.h"
+#include "oomlog.h"
+#include "OomTraces.h"
+#include "oomoutofmemorywatcher.h"
+#include "oomwserveventreceiver.h"
+#include "oomconstants.hrh"
+#include "oomrunpluginconfig.h"
+#include "oomapplicationconfig.h"
+#include "oomclientrequestqueue.h"
+
+#ifndef CLIENT_REQUEST_QUEUE
+const TInt KOomWatchDogStatusIdle = -1;
+#endif
+
+// ======================================================================
+// class CMemoryMonitor
+// ======================================================================
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor* CMemoryMonitor::NewL()
+    { // static
+    FUNC_LOG;
+
+    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitor::CMemoryMonitor()
+    {
+    FUNC_LOG;
+
+    SetMemoryMonitorTls(this);
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor::~CMemoryMonitor()
+    {
+    FUNC_LOG;
+
+#ifndef CLIENT_REQUEST_QUEUE
+    if (iWatchdogStatusSubscriber)
+        {
+        iWatchdogStatusSubscriber->StopSubscribe();
+        }
+    iWatchdogStatusProperty.Close();
+    delete iWatchdogStatusSubscriber;
+#endif
+    
+    delete iServer;
+    delete iWservEventReceiver;
+    delete iOOMWatcher;
+    iFs.Close();
+    iWs.Close();
+    
+    delete iOomWindowGroupList;
+    delete iOomActionList;
+    delete iConfig;
+#ifdef CLIENT_REQUEST_QUEUE
+    delete iQueue;
+#endif
+    
+#ifdef _DEBUG    
+    delete iLogger;
+#endif
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::ConstructL()
+    {
+    FUNC_LOG;
+
+    User::LeaveIfError(iWs.Connect());
+    
+    iOomWindowGroupList = COomWindowGroupList::NewL(iWs);
+    
+    iConfig = COomConfig::NewL(); 
+    
+#ifdef CLIENT_REQUEST_QUEUE
+    iQueue = COomClientRequestQueue::NewL(*this);
+    
+    iServer = CMemoryMonitorServer::NewL(*iQueue);
+#else
+    iServer = CMemoryMonitorServer::NewL(*this);    
+#endif
+    
+   // Load up threshold & OOM app lists from resource.
+    User::LeaveIfError(iFs.Connect());    
+    
+    COomConfigParser* oomConfigParser = new (ELeave) COomConfigParser(*iConfig, iFs);
+    CleanupStack::PushL(oomConfigParser);
+    oomConfigParser->ParseL();
+    CleanupStack::PopAndDestroy(oomConfigParser);
+
+    iOomActionList = COomActionList::NewL(*this, *iServer, iWs, *iConfig);
+    
+#ifdef _DEBUG    
+    iLogger = COomLogger::NewL(iWs, iFs);
+#endif
+    
+    // Get the thresholds based on the current foreground app and the config
+    RefreshThresholds();
+    
+    _LIT_SECURITY_POLICY_S0(KOomMemoryMonitorPolicyWrite, KOomMemoryMonitorStatusPropertyCategory.iUid);
+    _LIT_SECURITY_POLICY_PASS(KOomMemoryMonitorPolicyRead);
+
+    // Define MemoryMonitorStatusProperty. set to "above treshhold".
+    TInt err = RProperty::Define(KOomMemoryMonitorStatusPropertyCategory, KOomMemoryMonitorStatusPropertyKey, RProperty::EInt, KOomMemoryMonitorPolicyRead, KOomMemoryMonitorPolicyWrite);
+    TRACES1("CMemoryMonitor::ConstructL: KOomMemoryMonitorStatusProperty: Define err = %d", err);
+    
+    err = RProperty::Set(KOomMemoryMonitorStatusPropertyCategory, KOomMemoryMonitorStatusPropertyKey, EAboveTreshHold);
+    TRACES1("CMemoryMonitor::ConstructL:  KOomMemoryMonitorStatusProperty: Set err = %d", err);            
+
+#ifndef CLIENT_REQUEST_QUEUE
+    err = iWatchdogStatusProperty.Attach(KPSUidUikon, KUikOOMWatchdogStatus);
+    
+    TRACES1("CMemoryMonitor::ConstructL: KUikOOMWatchdogStatus err = %d", err);
+        
+    err = iWatchdogStatusProperty.Set(KOomWatchDogStatusIdle);
+    
+    iWatchdogStatusSubscriber = new (ELeave) CSubscribeHelper(TCallBack(WatchdogStatusStatusChanged, this), iWatchdogStatusProperty);
+    iWatchdogStatusSubscriber->Subscribe();
+#endif
+    
+    
+    iOOMWatcher = COutOfMemoryWatcher::NewL(*this, iLowRamThreshold, iGoodRamThreshold, iConfig->GlobalConfig().iSwapUsageMonitored, iLowSwapThreshold, iGoodSwapThreshold);
+    iOOMWatcher->Start();
+
+    iWservEventReceiver = new(ELeave) CWservEventReceiver(*this, iWs);
+    iWservEventReceiver->ConstructL();
+    }
+
+const COomGlobalConfig& CMemoryMonitor::GlobalConfig()
+    {
+    CMemoryMonitor* globalMemoryMonitor = static_cast<CMemoryMonitor*>(Dll::Tls());
+    return globalMemoryMonitor->iConfig->GlobalConfig();
+    }
+
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::FreeMemThresholdCrossedL()
+    {
+    FUNC_LOG;
+
+    iActionTrigger = ERamRotation;
+    StartFreeSomeRamL(iGoodRamThreshold, iGoodSwapThreshold);
+    }
+
+void CMemoryMonitor::HandleFocusedWgChangeL()
+    {
+    FUNC_LOG;
+
+    TInt oldGoodRamThreshold = iGoodRamThreshold;
+    TInt oldLowRamThreshold = iLowRamThreshold;
+    TInt oldGoodSwapThreshold = iGoodSwapThreshold;
+    TInt oldLowSwapThreshold = iLowSwapThreshold;
+        
+    // Refresh the low and good memory thresholds as they may have changed due to the new foreground application
+    RefreshThresholds();
+       
+    if ((oldGoodRamThreshold != iGoodRamThreshold)
+            || (oldLowRamThreshold != iLowRamThreshold)
+            || (oldGoodSwapThreshold != iGoodSwapThreshold)
+            || (oldLowSwapThreshold != iLowSwapThreshold))
+        // If the thresholds have changed then update the memory watched
+        {
+        iOOMWatcher->UpdateThresholds(iLowRamThreshold, iGoodRamThreshold, iLowSwapThreshold, iGoodSwapThreshold);
+        }
+    
+    // If the available memory is less than the low memory threshold then free some RAM
+    User::CompressAllHeaps();
+    TInt currentFreeRam = 0;
+    HAL::Get( HALData::EMemoryRAMFree, currentFreeRam );
+	TInt currentFreeSwap = 0;
+	if (iConfig->GlobalConfig().iSwapUsageMonitored)
+		{
+        SVMSwapInfo swapInfo;
+		UserSvr::HalFunction(EHalGroupVM, EVMHalGetSwapInfo, &swapInfo, 0);
+		currentFreeSwap = swapInfo.iSwapFree;
+		}
+    
+    if ((currentFreeRam < iLowRamThreshold) ||
+		(iConfig->GlobalConfig().iSwapUsageMonitored && (currentFreeSwap < iLowSwapThreshold)))
+        {
+        iActionTrigger = ERamRotation;
+        StartFreeSomeRamL(iGoodRamThreshold, iGoodSwapThreshold);
+        }
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapTarget)
+    {
+    StartFreeSomeRamL(aFreeRamTarget, aFreeSwapTarget, KOomPriorityInfinate - 1);
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapTarget, TInt aMaxPriority) // The maximum priority of action to run
+    {
+    FUNC_LOG;
+
+    TRACES4("MemoryMonitor::StartFreeSomeRamL: aFreeRamTarget = %d, iCurrentRamTarget = %d, aFreeSwapSpaceTarget = %d, iCurrentSwapTarget = %d", aFreeRamTarget, iCurrentRamTarget, aFreeSwapTarget, iCurrentSwapTarget);
+    
+    // Update the target if new target is higher. If the target is lower than the current target and memory 
+    // is currently being freed then we do not want to reduce the amount of memory this operation frees.
+    if (aFreeRamTarget > iCurrentRamTarget)
+        {
+        iCurrentRamTarget = aFreeRamTarget;
+        }
+    
+    if (aFreeSwapTarget > iCurrentSwapTarget)
+        {
+        iCurrentSwapTarget = aFreeSwapTarget;
+        }
+
+    // check if there is enough free memory already.
+    TInt freeMemory = 0;
+    GetFreeMemory(freeMemory);
+    TInt freeSwap = 0;
+    if (iConfig->GlobalConfig().iSwapUsageMonitored)
+        {
+        GetFreeSwapSpace(freeSwap);
+        }
+
+    TRACES2("MemoryMonitor::StartFreeSomeRamL, freeMemory = %d, freeSwap = %d", freeMemory, freeSwap);
+    
+    if ((freeMemory >= iCurrentRamTarget) &&
+        ((!iConfig->GlobalConfig().iSwapUsageMonitored) || (freeSwap >= iCurrentSwapTarget)))
+        {
+        if (iLastMemoryMonitorStatusProperty != EFreeingMemory)
+            {
+        ResetTargets();
+        iOomActionList->SwitchOffPlugins();
+        SetMemoryMonitorStatusProperty(EAboveTreshHold);
+#ifdef CLIENT_REQUEST_QUEUE        
+        iQueue->ActionsCompleted(freeMemory, ETrue);
+#else        
+        iServer->CloseAppsFinished(freeMemory, ETrue);
+#endif        
+            }
+        return;
+        }
+
+#ifdef _DEBUG    
+    iLogger->StartL();
+#endif
+	
+    // Build the list of memory freeing actions
+    iOomActionList->BuildActionListL(*iOomWindowGroupList, *iConfig);
+    
+	iOomActionList->SetCurrentTargets(iCurrentRamTarget, iCurrentSwapTarget);
+    
+    // Run the memory freeing actions
+    iOomActionList->FreeMemory(aMaxPriority);
+    }
+
+void CMemoryMonitor::RequestFreeMemoryPandSL(TInt aBytesRequested)
+    {
+    FUNC_LOG;
+    
+    iActionTrigger = EPublishAndSubscribe;
+    StartFreeSomeRamL(aBytesRequested + iLowRamThreshold, iLowSwapThreshold);
+    }
+
+void CMemoryMonitor::RequestFreeMemoryL(TInt aBytesRequested, TBool aDataPaged)
+    {
+    FUNC_LOG;
+    
+    iActionTrigger = EClientServerRequestFreeMemory;
+    iDataPaged = aDataPaged;
+    StartFreeSomeRamL(iLowRamThreshold, aBytesRequested + iLowSwapThreshold);
+    }
+
+void CMemoryMonitor::FreeOptionalRamL(TInt aBytesRequested, TInt aPluginId, TBool aDataPaged) // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
+    {
+    FUNC_LOG;
+    
+    iActionTrigger = EClientServerRequestOptionalRam;
+
+    iDataPaged = aDataPaged;
+       
+    // Calculate the priority of the allocation (the priority of the plugin that will clear it up - 1)
+    TInt priorityOfAllocation = iConfig->GetPluginConfig(aPluginId).CalculatePluginPriority(*iOomWindowGroupList) - 1;
+   
+    StartFreeSomeRamL(aBytesRequested + iGoodRamThreshold, iLowSwapThreshold, priorityOfAllocation);
+    }
+
+void CMemoryMonitor::GetFreeMemory(TInt& aCurrentFreeMemory)
+    {
+    FUNC_LOG;
+
+    // may cause some extra load but allows more precise action
+    User::CompressAllHeaps();
+
+    HAL::Get( HALData::EMemoryRAMFree, aCurrentFreeMemory );
+
+    TRACES1("CMemoryMonitor::GetFreeMemory: Free RAM now %d", aCurrentFreeMemory);
+    }
+
+void CMemoryMonitor::GetFreeSwapSpace(TInt& aCurrentFreeSwapSpace)
+    {
+    FUNC_LOG;
+    
+    SVMSwapInfo swapInfo;
+    UserSvr::HalFunction(EHalGroupVM, EVMHalGetSwapInfo, &swapInfo, 0);
+    aCurrentFreeSwapSpace = swapInfo.iSwapFree;
+        
+    TRACES1("CMemoryMonitor::GetFreeSwapSpace: Free swap space now %d", aCurrentFreeSwapSpace);
+    }
+
+#ifndef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::WatchdogStatusStatusChanged(TAny* aPtr)
+    {
+    FUNC_LOG;
+
+    CMemoryMonitor* self = STATIC_CAST(CMemoryMonitor*,aPtr);
+    if (self)
+        self->HandleWatchdogStatusCallBack();
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::HandleWatchdogStatusCallBack()
+    {
+    FUNC_LOG;
+
+    // Someone has set the key to request some free memory.
+    TInt memoryRequested = 0;
+    iWatchdogStatusProperty.Get(memoryRequested);
+
+    // Try to free the RAM.
+    if (memoryRequested >= 1)
+        {
+        iOOMWatcher->Cancel();              // Pause memory notifys.
+        TRAP_IGNORE(RequestFreeMemoryPandSL(memoryRequested + iLowThreshold)); // This call could take a few seconds to do its stuff.
+        iOOMWatcher->Start();               // Restarts memory monitoring.
+        }
+    // Set the key back to KOomWatchDogStatusIdle to indicate we're done.
+    iWatchdogStatusProperty.Set(KOomWatchDogStatusIdle);
+    }
+#endif //CLIENT_REQUEST_QUEUE
+
+void CMemoryMonitor::AppNotExiting(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    iOomActionList->AppNotExiting(aWgId);
+    }
+
+
+void CMemoryMonitor::RefreshThresholds()
+    {
+    FUNC_LOG;
+
+    iOomWindowGroupList->Refresh();
+    
+    // Calculate the desired good threshold, this could be the globally configured value...
+    iGoodRamThreshold = CMemoryMonitor::GlobalConfig().iGoodRamThreshold;
+    iLowRamThreshold = CMemoryMonitor::GlobalConfig().iLowRamThreshold;
+    iGoodSwapThreshold = CMemoryMonitor::GlobalConfig().iGoodSwapThreshold;
+    iLowSwapThreshold = CMemoryMonitor::GlobalConfig().iLowSwapThreshold;
+    TRACES4("CMemoryMonitor::RefreshThresholds: Global Good Ram Threshold = %d, Global Low Ram Threshold = %d, Global Good Swap Threshold = %d, Global Low Swap Threshold = %d", iGoodRamThreshold, iLowRamThreshold, iGoodSwapThreshold, iLowSwapThreshold);
+
+#ifdef _DEBUG
+    TRACES("CMemoryMonitor::RefreshThresholds: Dumping Window Group List");
+    TInt wgIndex = iOomWindowGroupList->Count() - 1;
+    while (wgIndex >= 0)        
+        {
+        TInt32 appId = iOomWindowGroupList->AppId(wgIndex, ETrue);    
+        TInt wgId = iOomWindowGroupList->WgId(wgIndex).iId;
+        TInt parentId = iOomWindowGroupList->WgId(wgIndex).iId;        
+        TRACES4("CMemoryMonitor::RefreshThresholds: wgIndex=%d, oom uid=%x, wgId(child)=%d, parentId=%d", wgIndex, appId, wgId, parentId);    
+        wgIndex--;
+        }
+#endif
+    
+    // The global value can be overridden by an app specific value
+    // Find the application config entry for the foreground application
+    if (iOomWindowGroupList->Count())
+        {
+        TUint foregroundAppId = iOomWindowGroupList->AppId(0, ETrue);
+        TUid foregroundAppUid = TUid::Uid(foregroundAppId);
+        
+        if ( (foregroundAppUid == KUidPenInputServer || foregroundAppUid == KUidFastSwap) &&
+             iOomWindowGroupList->Count() > 1 )
+            {
+            // pen input server puts itself to the foreground when the web browser is active
+            // fast swap should not reset the thresholds for the app behind it
+            foregroundAppId = iOomWindowGroupList->AppId(1, ETrue);
+            }
+
+        // If this application configuration overrides the good_ram_threshold then set it
+        if (iConfig->GetApplicationConfig(foregroundAppId).iGoodRamThreshold != KOomThresholdUnset)
+            {
+            iGoodRamThreshold = iConfig->GetApplicationConfig(foregroundAppId).iGoodRamThreshold;
+            TRACES2("CMemoryMonitor::RefreshThresholds: For foreground app %x, Good Ram Threshold = %d", foregroundAppId, iGoodRamThreshold);
+            }
+        // If this application configuration overrides the low_ram_threshold then set it
+        if (iConfig->GetApplicationConfig(foregroundAppId).iLowRamThreshold != KOomThresholdUnset)
+            {
+            iLowRamThreshold = iConfig->GetApplicationConfig(foregroundAppId).iLowRamThreshold;
+            TRACES2("CMemoryMonitor::RefreshThresholds: For foreground app %x, Low Ram Threshold = %d", foregroundAppId, iLowRamThreshold);
+            }
+
+        if (iConfig->GetApplicationConfig(foregroundAppId).iGoodSwapThreshold != KOomThresholdUnset)
+            {
+            iGoodSwapThreshold = iConfig->GetApplicationConfig(foregroundAppId).iGoodSwapThreshold;
+            TRACES2("CMemoryMonitor::RefreshThresholds: For foreground app %x, Good Swap Threshold = %d", foregroundAppId, iGoodSwapThreshold);
+            }
+        // If this application configuration overrides the low_swap_threshold then set it
+        if (iConfig->GetApplicationConfig(foregroundAppId).iLowSwapThreshold != KOomThresholdUnset)
+            {
+            iLowSwapThreshold = iConfig->GetApplicationConfig(foregroundAppId).iLowSwapThreshold;
+            TRACES2("CMemoryMonitor::RefreshThresholds: For foreground app %x, Low Swap Threshold = %d", foregroundAppId, iLowSwapThreshold);
+            }
+        }
+    }
+
+// SetMemoryMonitorStatusProperty - updates the property value only if it has changed
+void CMemoryMonitor::SetMemoryMonitorStatusProperty(const TMemoryMonitorStatusPropertyValues aValue)
+    {
+    if (iLastMemoryMonitorStatusProperty != aValue)
+        {
+        TInt err = RProperty::Set(KOomMemoryMonitorStatusPropertyCategory, KOomMemoryMonitorStatusPropertyKey, aValue);
+        TRACES1("CMemoryMonitor::SetMemoryMonitorStatusProperty: err = %d", err);
+        iLastMemoryMonitorStatusProperty = aValue;
+        }
+    }
+
+void CMemoryMonitor::ResetTargets()
+    {
+    FUNC_LOG;
+
+    //we reset the target when a memory free operation completes, to deal with the case 
+    //where the operation was initiated with a target larger than the current good threshold
+    iCurrentRamTarget = iGoodRamThreshold;
+    iCurrentSwapTarget = iGoodSwapThreshold;
+    iOomActionList->SetCurrentTargets(iCurrentRamTarget, iCurrentSwapTarget);
+    }
+
+void CMemoryMonitor::SetPriorityBusy(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    iOomWindowGroupList->SetPriorityBusy(aWgId);
+    }
+
+void CMemoryMonitor::SetPriorityNormal(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    iOomWindowGroupList->SetPriorityNormal(aWgId);
+    }
+
+void CMemoryMonitor::SetPriorityHigh(TInt aWgId)
+    {
+    iOomWindowGroupList->SetPriorityHigh(aWgId);
+    }
+
+TActionTriggerType CMemoryMonitor::ActionTrigger() const
+    {
+    return iActionTrigger;
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::GoodRamThreshold() const
+    {
+    return iGoodRamThreshold;
+    }
+
+TInt CMemoryMonitor::LowRamThreshold() const
+    {
+    return iLowRamThreshold;
+    }
+
+void CMemoryMonitor::ActionsCompleted(TInt aBytesFree, TBool aMemoryGood)
+    {
+    iQueue->ActionsCompleted(aBytesFree, aMemoryGood);
+    }
+#endif //CLIENT_REQUEST_QUEUE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oommemorymonitorserver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,114 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oommemorymonitorserver.h"
+#include "oommonitorclientserver.h"
+#include "oommemorymonitorsession.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+
+#ifdef CLIENT_REQUEST_QUEUE        
+CMemoryMonitorServer* CMemoryMonitorServer::NewL(COomClientRequestQueue& aQueue)
+#else
+CMemoryMonitorServer* CMemoryMonitorServer::NewL(CMemoryMonitor& aMonitor)
+#endif
+    {
+    FUNC_LOG;
+
+#ifdef CLIENT_REQUEST_QUEUE        
+    CMemoryMonitorServer* self=new(ELeave) CMemoryMonitorServer(aQueue);
+#else
+    CMemoryMonitorServer* self=new(ELeave) CMemoryMonitorServer(aMonitor);
+#endif
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitorServer::~CMemoryMonitorServer()
+    {
+    FUNC_LOG;
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE        
+CMemoryMonitorServer::CMemoryMonitorServer(COomClientRequestQueue& aQueue)
+    :CServer2(CActive::EPriorityStandard), iQueue(aQueue)
+#else
+CMemoryMonitorServer::CMemoryMonitorServer(CMemoryMonitor& aMonitor)
+    :CServer2(CActive::EPriorityStandard), iMonitor(aMonitor)    
+#endif
+    {
+    FUNC_LOG;
+    }
+
+void CMemoryMonitorServer::ConstructL()
+    {
+    FUNC_LOG;
+
+    StartL(KMemoryMonitorServerName);
+    }
+
+CSession2* CMemoryMonitorServer::NewSessionL(const TVersion& /*aVersion*/, const RMessage2& /*aMessage*/) const
+    {
+    FUNC_LOG;
+
+    return new(ELeave) CMemoryMonitorSession();
+    }
+
+TInt CMemoryMonitorServer::RunError(TInt aError)
+    {
+    FUNC_LOG;
+
+    Message().Complete(aError);
+    //
+    // The leave will result in an early return from CServer::RunL(), skipping
+    // the call to request another message. So do that now in order to keep the
+    // server running.
+    ReStart();
+    return KErrNone;    // handled the error fully
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE        
+COomClientRequestQueue& CMemoryMonitorServer::ClientRequestQueue()
+    {
+    FUNC_LOG;
+
+    return iQueue;
+    }
+#else
+CMemoryMonitor& CMemoryMonitorServer::Monitor()
+    {
+    FUNC_LOG;
+
+    return iMonitor;
+    }
+#endif
+
+#ifndef CLIENT_REQUEST_QUEUE        
+void CMemoryMonitorServer::CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood)
+    {
+    FUNC_LOG;
+
+    iSessionIter.SetToFirst();
+    CSession2* s;
+    while ((s = iSessionIter++) != 0)
+        static_cast<CMemoryMonitorSession*>(s)->CloseAppsFinished(aBytesFree, aMemoryGood);
+    }
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oommemorymonitorsession.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#include "oommonitorclientserver.h"
+#include "oommemorymonitorsession.h"
+#include "oommemorymonitor.h"
+#include "oommemorymonitorserver.h"
+#include "OomTraces.h"
+#include "oomclientrequestqueue.h"
+
+CMemoryMonitorSession::CMemoryMonitorSession()
+    {
+    FUNC_LOG;
+    }
+
+
+CMemoryMonitorSession::~CMemoryMonitorSession()
+    {
+    FUNC_LOG;
+    }
+
+CMemoryMonitorServer& CMemoryMonitorSession::Server()
+    {
+    FUNC_LOG;
+
+    return *static_cast<CMemoryMonitorServer*>(const_cast<CServer2*>(CSession2::Server()));
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE
+COomClientRequestQueue& CMemoryMonitorSession::ClientRequestQueue()
+    {
+    FUNC_LOG;
+
+    return Server().ClientRequestQueue();
+    }
+#endif
+
+CMemoryMonitor& CMemoryMonitorSession::Monitor()
+    {
+    FUNC_LOG;
+
+#ifdef CLIENT_REQUEST_QUEUE
+    return ClientRequestQueue().Monitor();
+#else
+    return Server().Monitor();    
+#endif
+    }
+
+TBool CMemoryMonitorSession::IsDataPaged(const RMessage2& aMessage)
+    {
+    RThread clientThread;
+    TInt err = aMessage.Client(clientThread);
+    TBool dataPaged = EFalse;
+    if(err == KErrNone)
+        {
+        RProcess processName;
+        err = clientThread.Process(processName);
+        if(err == KErrNone)
+            {
+            dataPaged = processName.DefaultDataPaged();
+            }
+        else
+            {
+            PanicClient(aMessage, EPanicIllegalFunction);
+            }
+        }
+    else
+        {
+        PanicClient(aMessage, EPanicIllegalFunction);
+        }
+    return dataPaged;            
+    }
+
+void CMemoryMonitorSession::ServiceL(const RMessage2& aMessage)
+    {
+    FUNC_LOG;
+        
+#ifndef CLIENT_REQUEST_QUEUE
+    iFunction = aMessage.Function();
+#endif 
+    
+    switch (aMessage.Function())
+        {
+        case EOomMonitorRequestFreeMemory:
+            if (!iRequestFreeRam.IsNull())
+                PanicClient(aMessage, EPanicRequestActive);
+            // message will be completed when CloseAppsFinished() is called.  
+            
+#ifdef CLIENT_REQUEST_QUEUE
+            ClientRequestQueue().RequestFreeMemoryL(aMessage);
+#else
+            iRequestFreeRam = aMessage;
+            Monitor().RequestFreeMemoryL(aMessage.Int0(), IsDataPaged(aMessage));
+#endif
+            break;
+
+        case EOomMonitorCancelRequestFreeMemory:
+            if (!iRequestFreeRam.IsNull())
+                iRequestFreeRam.Complete(KErrCancel);
+            aMessage.Complete(KErrNone);
+            break;
+
+        case EOomMonitorThisAppIsNotExiting:
+            Monitor().AppNotExiting(aMessage.Int0());
+            aMessage.Complete(KErrNone);
+            break;
+
+        case EOomMonitorRequestOptionalRam:
+            if (!iRequestFreeRam.IsNull())
+                PanicClient(aMessage, EPanicRequestActive);
+            // message will be completed when CloseAppsFinished() is called.
+            
+#ifdef CLIENT_REQUEST_QUEUE
+            ClientRequestQueue().RequestOptionalRamL(aMessage);
+#else
+            iRequestFreeRam = aMessage;
+            iMinimumMemoryRequested = aMessage.Int1();
+            Monitor().FreeOptionalRamL(aMessage.Int0(), aMessage.Int2(), IsDataPaged(aMessage));
+#endif            
+            break;
+            
+        case EOomMonitorSetPriorityBusy:
+            Monitor().SetPriorityBusy(aMessage.Int0());
+            aMessage.Complete(KErrNone);
+            break;
+            
+        case EOomMonitorSetPriorityNormal:
+               Monitor().SetPriorityNormal(aMessage.Int0());
+            aMessage.Complete(KErrNone);
+            break;
+
+        case EOomMonitorSetPriorityHigh:
+               Monitor().SetPriorityHigh(aMessage.Int0());
+            aMessage.Complete(KErrNone);
+            break;
+
+        default:
+            PanicClient(aMessage, EPanicIllegalFunction);
+            break;
+        }
+    }
+
+#ifndef CLIENT_REQUEST_QUEUE
+void CMemoryMonitorSession::CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood)
+    {
+    FUNC_LOG;
+
+    if (!iRequestFreeRam.IsNull())
+        {
+        if (iFunction == EOomMonitorRequestOptionalRam)
+            {
+            TInt memoryAvailable = aBytesFree - CMemoryMonitor::GlobalConfig().iGoodRamThreshold;
+            
+            // If memory available is greater than the requested RAM then complete with the amount of free memory, otherwise complete with KErrNoMemory
+            if (memoryAvailable >= iMinimumMemoryRequested)
+                {
+                iRequestFreeRam.Complete(memoryAvailable);
+                }
+            else
+                {
+                iRequestFreeRam.Complete(KErrNoMemory);
+                }
+               }
+        else 
+            iRequestFreeRam.Complete(aMemoryGood ? KErrNone : KErrNoMemory);
+        }
+    }
+#endif
--- a/sysresmonitoring/oommonitor/src/oommonitor.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/src/oommonitor.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -16,41 +16,20 @@
 */
 
 
-#include <hal.h>
-#include <s32file.h>
-#include <w32std.h>
-#include <akneiksrvc.h>
-#include <LafMemoryWatcher.rsg>
-#include <bautils.h>
-#include <apgwgnam.h>
-#include <apgtask.h>
-#include <barsc.h>
-#include <barsread2.h>
 
-#include <e32property.h>
-#include <UikonInternalPSKeys.h>
-#include <UiklafInternalCRKeys.h>
-
-#include <data_caging_path_literals.hrh>
 
 #include "oommonitor.h"
-#include "oommonitorplugin.h"
-#include "oommonitorplugin.hrh"
+#include "oommemorymonitor.h"
 #include "oommonitorclientserver.h"
-
-#define OOM_WATCHDOG_STATUS_IDLE -1
+#include "OomTraces.h"
 
-const TInt KPreallocatedSpaceForAppList = 50;
-const TInt KPluginFreeMemoryTime = 100000;       // 100 milliseconds for plugins to free memory, overridden by LafMemoryWatcher.rss
+const TInt KStackSize = 0x2000;
 
-_LIT(KDriveZ, "z:");
-_LIT(KOOMWatcherResourceFileName, "lafmemorywatcher.rsc");
 _LIT(KOOMWatcherThreadName, "OOM FW");
-_LIT(KDummyWgName, "20");
 
 
 // Implements just Error() to avoid panic
-class CSimpleScheduler : public CActiveScheduler
+NONSHARABLE_CLASS(CSimpleScheduler) : public CActiveScheduler
     {
     void Error( TInt ) const{} // From CActiveScheduler
     };
@@ -58,6 +37,8 @@
 // thread function for OOM watcher
 GLDEF_C TInt WatcherThreadFunction( TAny* )
     {
+    FUNC_LOG;
+
     TInt err( KErrNone );
 
     CTrapCleanup* cleanup = CTrapCleanup::New();
@@ -95,12 +76,14 @@
 // Creates thread for OOM watchers
 EXPORT_C void CreateOOMWatcherThreadL()
     {
+    FUNC_LOG;
+
     RThread thread;
     TInt ret = thread.Create( KOOMWatcherThreadName,
                               WatcherThreadFunction,
-                              0x2000, // stack size
+                              KStackSize, // stack size
                               NULL, // uses caller thread's heap
-                              (TAny*)NULL );
+                              NULL );
 
     if ( ret == KErrNone )
         {
@@ -111,941 +94,10 @@
     User::LeaveIfError( ret );
     }
 
-
-// ======================================================================
-// class CMemoryMonitor
-// ======================================================================
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-CMemoryMonitor* CMemoryMonitor::NewL()
-    { // static
-    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CMemoryMonitor::CMemoryMonitor()
-: iRamPluginRunTime(KPluginFreeMemoryTime), iCurrentTask(iWs), 
-  iMemoryAboveThreshold(ETrue), iPluginMemoryGood(ETrue)
-    {
-    SetMemoryMonitorTls(this);
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-CMemoryMonitor::~CMemoryMonitor()
-    {
-    if (iWatchdogStatusSubscriber)
-    {
-        iWatchdogStatusSubscriber->StopSubscribe();
-    }
-    iWatchdogStatusProperty.Close();
-    delete iWatchdogStatusSubscriber;
-
-    delete iServer;
-    delete iWservEventReceiver;
-    delete iAppCloseTimer;
-    delete iAppCloseWatcher;
-    delete iOOMWatcher;
-    delete iPlugins;
-    iAppCloseOrderMap.Close();
-    iWgIds.Close();
-    delete iWgName;
-    iFs.Close();
-    iWs.Close();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CMemoryMonitor::ConstructL()
-    {
-    User::LeaveIfError(iWs.Connect());
-
-    // Reserve enough space to build an app list later.
-    iWgIds.ReserveL(KPreallocatedSpaceForAppList);
-    // Reserve enough space for CApaWindowGroupName.
-    iWgName = CApaWindowGroupName::NewL(iWs);
-    iWgNameBuf = HBufC::NewL(CApaWindowGroupName::EMaxLength);
-    (*iWgNameBuf) = KDummyWgName;
-    iWgName->SetWindowGroupName(iWgNameBuf);    // iWgName takes ownership of iWgNameBuf
-
-   // Load up threshold & OOM app lists from resource.
-    User::LeaveIfError(iFs.Connect());
-
-    RResourceFile resFile;
-    TFileName filename(KDriveZ);
-    filename.Append(KDC_RESOURCE_FILES_DIR);
-    filename.Append(KOOMWatcherResourceFileName);
-    BaflUtils::NearestLanguageFile(iFs, filename);
-    resFile.OpenL(iFs, filename);
-    CleanupClosePushL(resFile);
-
-    HBufC8* thresholds = resFile.AllocReadLC(R_APP_OOM_THRESHOLDS);
-    RResourceReader theReader;
-    theReader.OpenLC(*thresholds);
-
-    iLowThreshold = theReader.ReadInt32L();
-    iGoodThreshold = theReader.ReadInt32L();
-    iMaxExitTime = theReader.ReadInt32L();
-    TRAP_IGNORE(iRamPluginRunTime = theReader.ReadInt32L());    // trapped in case lafmemorywatcher.rss does not define this value
-
-    CleanupStack::PopAndDestroy(&theReader);
-    CleanupStack::PopAndDestroy(thresholds);
-
-    // apps to close first, first app in list gets closed first
-    ReadAppResourceArrayL(resFile, R_APP_OOM_EXIT_CANDIDATES, ECloseFirst, +1);	// +1 means apps later in the list are closed later
-    // apps to never close, all apps get order ENeverClose
-    ReadAppResourceArrayL(resFile, R_APP_OOM_EXIT_NEVER, ENeverClose, 0);	// 0 means that all apps get ENeverClose
-    // apps to close last, first app in list gets closed last
-    ReadAppResourceArrayL(resFile, R_APP_OOM_EXIT_LAST, ECloseLast, -1);	// -1 means apps later in the list are closed earlier
-    
-    CleanupStack::PopAndDestroy(); // resFile.Close();
-
-    iPlugins = new(ELeave) COomPlugins;
-    iPlugins->ConstructL();
-
-    TInt err = iWatchdogStatusProperty.Attach(KPSUidUikon, KUikOOMWatchdogStatus);
-#ifdef _DEBUG
-    RDebug::Print(_L("xxxx KUikOOMWatchdogStatus err=%d"), err);
-#endif
-    err = iWatchdogStatusProperty.Set(OOM_WATCHDOG_STATUS_IDLE);
-
-    iWatchdogStatusSubscriber = new (ELeave) CSubscribeHelper(TCallBack(WatchdogStatusStatusChanged, this), iWatchdogStatusProperty);
-    iWatchdogStatusSubscriber->SubscribeL();
-
-    iOOMWatcher = COutOfMemoryWatcher::NewL(*this, iLowThreshold, iGoodThreshold);
-    iOOMWatcher->Start();
-
-    iAppCloseTimer = CAppCloseTimer::NewL(*this);
-    iAppCloseWatcher = new(ELeave) CAppCloseWatcher(*this);
-    
-    iWservEventReceiver = new(ELeave) CWservEventReceiver(*this, iWs);
-    iWservEventReceiver->ConstructL();
-
-    iServer = CMemoryMonitorServer::NewL(*this);
-    }
-
-void CMemoryMonitor::ReadAppResourceArrayL(RResourceFile& aResFile, TInt aResId, TInt aOrderBase, TInt aOrderInc)
-    {
-    // apps in this list will be ordered starting from aOrderBase
-    TInt order = aOrderBase;
-    // get the resource and set up the resource reader
-    HBufC8* apps = aResFile.AllocReadLC(aResId);
-    TResourceReader theReader;
-    theReader.SetBuffer(apps);
-    // go through all apps in the list
-    TInt appsCount = theReader.ReadUint16();
-    for (TInt ii = 0; ii < appsCount; ii++)
-        {
-        TInt appUid = theReader.ReadInt32();
-        // insert the app UID with the appropriate order
-        iAppCloseOrderMap.Insert(appUid, order);
-        // change the order number as appropriate for this list
-        order += aOrderInc;
-        }
-    CleanupStack::PopAndDestroy(apps);
-    }
-
-void CMemoryMonitor::CancelAppCloseWatchers()
-    {
-    iAppCloserRunning = EFalse;
-    iCurrentTask.SetWgId(0);
-    if (iAppCloseTimer)
-        iAppCloseTimer->Cancel();
-    if (iAppCloseWatcher)
-        iAppCloseWatcher->Cancel();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CMemoryMonitor::FreeMemThresholdCrossedL()
-    {
-    StartFreeSomeRamL(iGoodThreshold);
-    }
-
-void CMemoryMonitor::HandleFocusedWgChangeL()
-    {
-    // The focused window group has changed.
-    if (iAppCloserRunning)
-        {
-        // if the app closer is currently running, restart it
-        RestartAppCloser();
-        }
-    else if (!iMemoryAboveThreshold)
-    	{
-	    // If memory is low, rescan for free memory
-    	StartFreeSomeRamL(iGoodThreshold);
-    	}
-    }
-
-void CMemoryMonitor::RestartAppCloser()
-	{
-    CancelAppCloseWatchers();
-    // StartFreeSomeRamL is trapped so that clients waiting
-    // for completion will definitely receive it.
-	TRAPD(err, StartFreeSomeRamL(iCurrentTarget))
-	if (err != KErrNone)
-        CloseAppsFinished(FreeMemoryAboveThreshold());
-	}
-
-// ---------------------------------------------------------
-// This function attempts to free enough RAM to leave the target amount of space free.
-// This function could take a substantial time to return as it may have to close a number
-// of applications, and each will be given a timeout of KAPPEXITTIMEOUT.
-// ---------------------------------------------------------
-//
-void CMemoryMonitor::StartFreeSomeRamL(TInt aTargetFree)
-    {
-    // update the target if new target is higher
-    if (aTargetFree > iCurrentTarget)
-        iCurrentTarget = aTargetFree;
-
-    // do nothing more if app closer is already running
-    if (iAppCloserRunning)
-        return;
-
-       iCurrentTarget = aTargetFree;
-
-    // check if there is enough free memory already.
-    if (FreeMemoryAboveThreshold())
-        {
-        CloseAppsFinished(ETrue);
-        return;
-        }
-
-    // Tell plugins to free memory
-    bool pluginsToldToFreeMemory = iPluginMemoryGood;
-    SetPluginMemoryGood(EFalse);
-
-    // get the list of apps to free
-    GetWgsToCloseL();
-
-    if (pluginsToldToFreeMemory)
-        {
-        // Give the plugins a short time to free memory.
-        // App close timer will kick off the app closer.
-        iAppCloseTimer->After(iRamPluginRunTime);
-        }
-    else
-        {
-        // start closing apps
-        CloseNextApp();
-        }
-    }
-
-void CMemoryMonitor::CloseNextApp()
-    {
-    if(iNextAppToClose >= 0)
-        {
-        // close an app, if there's an app to be closed
-#ifdef _DEBUG
-        RDebug::Print(_L("OOM WATCHER: Target not achieved; continuing... Target:%d"),iCurrentTarget);
-#endif
-		// CloseNextApp() may have been called by one of the event
-		// watchers, cancel them all to prevent more events from the
-		// last app before restarting the watchers for the new app to close
-        CancelAppCloseWatchers();
-        iAppCloserRunning = ETrue;
-        // Set the TApaTask to the app
-        iCurrentTask.SetWgId(iWgIds[iNextAppToClose].iId);
-        // Start a timer and the thread watcher
-        iAppCloseTimer->After(iMaxExitTime);
-        iAppCloseWatcher->Start(iCurrentTask);
-        // Tell the app to close
-        iCurrentTask.EndTask();
-        iNextAppToClose--;
-        }
-    else
-        {
-        // stop if we have no more apps
-        CloseAppsFinished(EFalse);
-        }
-    }
-
-// handle an app closed event
-void CMemoryMonitor::CloseAppEvent()
-    {
-    if (FreeMemoryAboveThreshold())
-        {
-        // stop if we have enough memory
-        CloseAppsFinished(ETrue);
-        }
-    else
-        {
-        // otherwise try to close another app
-        CloseNextApp();
-        }
-    }
-
-// The app closer is finished
-void CMemoryMonitor::CloseAppsFinished(TBool aMemoryGood)
-    {
-    CancelAppCloseWatchers();
-#ifdef _DEBUG
-    RDebug::Print(_L("OOM WATCHER: Final result: Target:%d Good?:%d"),iCurrentTarget,aMemoryGood);
-#endif
-    iServer->CloseAppsFinished(aMemoryGood);
-    // plugins can start using memory if result is good
-    SetPluginMemoryGood(aMemoryGood);
-    }
-
-TBool CMemoryMonitor::FreeMemoryAboveThreshold()
-    {
-    // may cause some extra load but allows more precise action
-    User::CompressAllHeaps();
-
-    TInt current = 0;
-    HAL::Get( HALData::EMemoryRAMFree, current );
-
-#ifdef _DEBUG
-    RDebug::Print(_L("OOM WATCHER: Free RAM now:%d "),current);
-#endif
-
-	iMemoryAboveThreshold = (current >= iCurrentTarget);
-    return iMemoryAboveThreshold;
-    }
-
-void CMemoryMonitor::GetWgsToCloseL()
-    {
-    // get all window groups, with info about parents
-    TInt numGroups = iWs.NumWindowGroups(0);
-    iWgIds.ReserveL(numGroups);
-    User::LeaveIfError(iWs.WindowGroupList(0, &iWgIds));
-
-    // Remove all child window groups, promote parents to foremost child position
-    ColapseWindowGroupTree();
-    
-    // now rearange the list so that it only contains apps to close
-    // first remove the foreground window group
-    iWgIds.Remove(0);
-
-    // go through the list from start to end.
-    // this divides the list into two sections. Apps that never
-    // close move towards the end of the list, apps that will close
-    // go towards the start.
-    // apps to close first will be placed further back in the close list.
-    TInt numAppsToClose = 0;		// numAppsToClose marks the boundary between closing and non-closing apps
-    TInt count = iWgIds.Count();
-    for (TInt ii=0; ii<count; ii++)
-        {
-        ASSERT(ii >= numAppsToClose);	// we are always looking at apps after the sorted section
-        // get the next window group
-        RWsSession::TWindowGroupChainInfo info = iWgIds[ii];
-        // get the close order for the window group
-        TInt closeOrder = AppCloseOrder(ii, info.iId);
-        if (closeOrder == ENeverClose)
-            {
-            // leave apps which should not be closed in place,
-            // after the last app to close.
-            continue;
-            }
-        else
-            {
-            // We no longer need the parent id. Use it to store the close order, to avoid the need to allocate more array space
-            info.iParentId = closeOrder;
-               // remove the app from it's current position
-            iWgIds.Remove(ii);
-            // find the right place to insert the app (lower orders are put further back)
-            TInt insertPos;
-            for (insertPos = 0; insertPos < numAppsToClose; insertPos++)
-                {
-                // compare this close order with window groups already in the list,
-                // whose close order is stored in iParentId
-                if (closeOrder > iWgIds[insertPos].iParentId)
-                    break;
-                }
-            // Insert the app in the correct place
-            ASSERT(insertPos <= ii && insertPos <= numAppsToClose);	// apps to close are always moved to front, before the close boundary
-            iWgIds.Insert(info, insertPos);
-            numAppsToClose++;
-            }
-        }
-    
-    // start closing apps from the end of the list of apps to close
-    iNextAppToClose = numAppsToClose - 1;
-    }
-
-// Calculate the order number in which this app should be closed
-// This is based on the app's UID and its window group Z-order
-// Apps given a lower order will be closed before those with a
-// higher order.
-TInt CMemoryMonitor::AppCloseOrder(TInt aWgIndex, TInt aWgId)
-    {
-    // get the app's details
-    TPtr wgPtr(iWgNameBuf->Des());
-    if (iWs.GetWindowGroupNameFromIdentifier(aWgId, wgPtr) != KErrNone)
-        return ENeverClose;
-    iWgName->SetWindowGroupName(iWgNameBuf);
-    TUid uid = iWgName->AppUid(); // This UID comes from the app, not the mmp!
-    TInt* order = iAppCloseOrderMap.Find(uid.iUid);
-
-    // The default app close order is normal with further 
-    // back apps getting a lower order
-    TInt closeOrder = ECloseNormal - aWgIndex;
-    if (order)
-        {
-        // Apps with a defined close order get that order.
-        closeOrder = *order;
-        }
-    else if (uid.iUid == 0 || iWgName->IsSystem() || iWgName->Hidden() || iWgName->IsBusy())
-        {
-        // Apps that should never close get the ENeverClose rank
-        closeOrder = ENeverClose;
-        }
-
-    return closeOrder;
-    }
-
-void CMemoryMonitor::SetPluginMemoryGood(TBool aSetToGood)
-    {
-    if (aSetToGood && !iPluginMemoryGood)
-        iPlugins->MemoryGood();
-    else if (!aSetToGood && iPluginMemoryGood)
-        iPlugins->FreeRam();
-    iPluginMemoryGood = aSetToGood;
-    }
-
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-TInt CMemoryMonitor::WatchdogStatusStatusChanged(TAny* aPtr)
-    {
-    CMemoryMonitor* self = STATIC_CAST(CMemoryMonitor*,aPtr);
-    if (self)
-        self->HandleWatchdogStatusCallBackL();
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CMemoryMonitor::HandleWatchdogStatusCallBackL()
-    {
-    // Someone has set the key to request some free memory.
-    TInt target = 0;
-    iWatchdogStatusProperty.Get(target);
-
-    // Try to free the RAM.
-    if (target >= 1)
-        {
-        iOOMWatcher->Cancel();              // Pause memory notifys.
-        TRAP_IGNORE(StartFreeSomeRamL(target)); // This call could take a few seconds to do its stuff.
-        iOOMWatcher->Start();               // Restarts memory monitoring.
-        }
-    // Set the key back to OOM_WATCHDOG_STATUS_IDLE to indicate we're done.
-    iWatchdogStatusProperty.Set(OOM_WATCHDOG_STATUS_IDLE);
-    }
-
-// ---------------------------------------------------------
-// Remove child window groups. Promote parent window groups forward to child position
-// ---------------------------------------------------------
-//
-void CMemoryMonitor::ColapseWindowGroupTree()
-    {
-    // start from the front, wg count can reduce as loop runs
-    for (TInt ii=0; ii<iWgIds.Count();)
-        {
-        RWsSession::TWindowGroupChainInfo& info = iWgIds[ii];
-        if (info.iParentId > 0)        // wg has a parent
-            {
-            // Look for the parent position
-            TInt parentPos = ii;        // use child pos as not-found signal
-            TInt count = iWgIds.Count();
-            for (TInt jj=0; jj<count; jj++)
-                {
-                if (iWgIds[jj].iId == info.iParentId)
-                    {
-                    parentPos = jj;
-                    break;
-                    }
-                }
-
-            if (parentPos > ii)  // parent should be moved forward
-                {
-                iWgIds[ii] = iWgIds[parentPos];
-                iWgIds.Remove(parentPos);
-                }
-            else if (parentPos < ii)  // parent is already ahead of child, remove child
-                iWgIds.Remove(ii);
-            else                    // parent not found, skip
-                ii++;
-            }
-        else    // wg does not have a parent, skip
-            ii++;
-        }
-    }
-
-void CMemoryMonitor::AppNotExiting(TInt aWgId)
-    {
-    if (aWgId == iCurrentTask.WgId())
-        CloseAppEvent();
-    }
-
-
-// ======================================================================
-// class COutOfMemoryWatcher
-// - notifies when free memory crosses preset thresholds
-// ======================================================================
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-COutOfMemoryWatcher* COutOfMemoryWatcher::NewL(CMemoryMonitor& aMonitor, TInt aLowThreshold, TInt aGoodThreshold)
-    {
-    COutOfMemoryWatcher* self = new (ELeave) COutOfMemoryWatcher(aMonitor);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLowThreshold, aGoodThreshold);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-COutOfMemoryWatcher::~COutOfMemoryWatcher()
-    {
-    Cancel();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-COutOfMemoryWatcher::COutOfMemoryWatcher(CMemoryMonitor& aMonitor)
-:   CActive(CActive::EPriorityStandard),
-    iLafShutdown(aMonitor)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void COutOfMemoryWatcher::ConstructL(TInt aLowThreshold, TInt aGoodThreshold)
-    {
-    UserSvr::SetMemoryThresholds(aLowThreshold,aGoodThreshold);
-    User::LeaveIfError(iChangeNotifier.Create());
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void COutOfMemoryWatcher::Start()
-    {
-    if (!IsActive())
-        {
-        iChangeNotifier.Logon(iStatus);
-        SetActive();
-        }
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void COutOfMemoryWatcher::DoCancel()
-    {
-    iChangeNotifier.LogonCancel();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void COutOfMemoryWatcher::RunL()
-    {
-    TInt status = iStatus.Int();
-
-    if (status < 0)
-        {
-        User::Leave(status);
-        }
-
-    // Check for memory status change.
-    if (status & EChangesFreeMemory)
-        {
-        iLafShutdown.FreeMemThresholdCrossedL();
-        }
-
-    // We are not active until FreeMemThresholdCrossedL returns.
-    Start();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-CSubscribeHelper::CSubscribeHelper(TCallBack aCallBack, RProperty& aProperty)
-    : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-CSubscribeHelper::~CSubscribeHelper()
-    {
-    Cancel();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CSubscribeHelper::SubscribeL()
-    {
-    if (!IsActive())
-        {
-        iProperty.Subscribe(iStatus);
-        SetActive();
-        }
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CSubscribeHelper::StopSubscribe()
-    {
-    Cancel();
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CSubscribeHelper::RunL()
-    {
-    if (iStatus.Int() == KErrNone)
-        {
-        iCallBack.CallBack();
-        SubscribeL();
-        }
-    }
-
-// ---------------------------------------------------------
-//
-// ---------------------------------------------------------
-//
-void CSubscribeHelper::DoCancel()
-    {
-    iProperty.Cancel();
-    }
-
-
-COomPlugins::COomPlugins()
-    {
-    }
-
-COomPlugins::~COomPlugins()
-    {
-    TInt count = iPlugins.Count();
-    for (TInt ii=0; ii<count; ii++)
-        {
-        TPlugin& plugin = iPlugins[ii];
-        if (plugin.iImpl)    // only if successfully added
-            REComSession::DestroyedImplementation(plugin.iDtorUid);
-        }
-    iPlugins.Close();
-    }
-
-void COomPlugins::ConstructL()
-    {
-    RImplInfoPtrArray implArray;
-    CleanupClosePushL(implArray);
-    REComSession::ListImplementationsL(KOomPluginInterfaceUid, implArray);
-
-    TInt count = implArray.Count();
-    iPlugins.ReserveL(count);
-
-    for (TInt ii=0; ii<count; ii++)
-        {
-        iPlugins.AppendL(TPlugin());
-        TPlugin& plugin = iPlugins[ii];
-        TUid uid(implArray[ii]->ImplementationUid());
-        plugin.iImpl = static_cast<COomMonitorPlugin*>(REComSession::CreateImplementationL(uid, plugin.iDtorUid, NULL));
-        }
-    
-    CleanupStack::PopAndDestroy(&implArray);
-    }
-
-void COomPlugins::FreeRam()
-    {
-    TInt count = iPlugins.Count();
-    for (TInt ii=0; ii<count; ii++)
-        {
-        TPlugin& plugin = iPlugins[ii];
-        plugin.iImpl->FreeRam();
-        }
-    }
-
-void COomPlugins::MemoryGood()
-    {
-    TInt count = iPlugins.Count();
-    for (TInt ii=0; ii<count; ii++)
-        {
-        TPlugin& plugin = iPlugins[ii];
-        plugin.iImpl->MemoryGood();
-        }
-    }
-
-COomPlugins::TPlugin::TPlugin()
-: iImpl(0)
-    {
-    }
-
-
-CAppCloseTimer* CAppCloseTimer::NewL(CMemoryMonitor& aMonitor)
-    {
-    CAppCloseTimer* self = new(ELeave)CAppCloseTimer(aMonitor);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CAppCloseTimer::CAppCloseTimer(CMemoryMonitor& aMonitor)
-: CTimer(CActive::EPriorityStandard), iMonitor(aMonitor)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CAppCloseTimer::RunL()
-    {
-    iMonitor.CloseAppEvent();
-    }
-
-
-
-CAppCloseWatcher::CAppCloseWatcher(CMemoryMonitor& aMonitor)
-: CActive(CActive::EPriorityStandard), iMonitor(aMonitor)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CAppCloseWatcher::~CAppCloseWatcher()
-    {
-    Cancel();
-    }
-
-void CAppCloseWatcher::Start(const TApaTask& aTask)
-    {
-    TInt err = iThread.Open(aTask.ThreadId());
-    if (err == KErrNone)
-        {
-        iOriginalProcessPriority = iThread.ProcessPriority();
-        iThread.SetProcessPriority(EPriorityForeground);
-        iThread.Logon(iStatus);
-        SetActive();
-        }
-    else
-        {
-        iStatus = KRequestPending;
-        TRequestStatus* s = &iStatus;
-        User::RequestComplete(s, err);
-        SetActive();
-        }
-    }
-
-void CAppCloseWatcher::DoCancel()
-    {
-    iThread.LogonCancel(iStatus);
-    iThread.SetProcessPriority(iOriginalProcessPriority);
-    iThread.Close();
-    }
-
-void CAppCloseWatcher::RunL()
-    {
-    if (iThread.Handle())
-        iThread.SetProcessPriority(iOriginalProcessPriority);
-    iThread.Close();
-    // Experimentation shows that memory may take up to 40ms
-    // to be released back to the system after app thread close.
-    // Using this delay should minimise the number of apps that
-    // need to be closed to recover the necessary memory.
-    const TInt KAppTidyUpDelay = 40000;
-    User::After(KAppTidyUpDelay);
-    iMonitor.CloseAppEvent();
-    }
-
-
-
-CWservEventReceiver::CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs)
-: CActive(CActive::EPriorityStandard), iMonitor(aMonitor), iWs(aWs), iWg(aWs)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CWservEventReceiver::~CWservEventReceiver()
-    {
-    Cancel();
-    iWg.Close();
-    }
-
-void CWservEventReceiver::ConstructL()
-    {
-    User::LeaveIfError(iWg.Construct((TUint32)this, EFalse));
-    iWg.SetOrdinalPosition(0, ECoeWinPriorityNeverAtFront);
-    iWg.EnableFocusChangeEvents();
-    Queue();
-    }
-
-void CWservEventReceiver::Queue()
-    {
-    iWs.EventReady(&iStatus);
-    SetActive();
-    }
-
-void CWservEventReceiver::DoCancel()
-    {
-    iWs.EventReadyCancel();
-    }
-
-void CWservEventReceiver::RunL()
-    {
-    TWsEvent event;
-    iWs.GetEvent(event);
-    if (event.Type() == EEventFocusGroupChanged)
-        iMonitor.HandleFocusedWgChangeL();
-    Queue();
-    }
-
-
-
-CMemoryMonitorServer* CMemoryMonitorServer::NewL(CMemoryMonitor& aMonitor)
-    {
-    CMemoryMonitorServer* self=new(ELeave) CMemoryMonitorServer(aMonitor);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CMemoryMonitorServer::~CMemoryMonitorServer()
-    {
-    }
-
-CMemoryMonitorServer::CMemoryMonitorServer(CMemoryMonitor& aMonitor)
-:CServer2(CActive::EPriorityStandard), iMonitor(aMonitor)
-    {
-    }
-
-void CMemoryMonitorServer::ConstructL()
-    {
-    StartL(KMemoryMonitorServerName);
-    }
-
-CSession2* CMemoryMonitorServer::NewSessionL(const TVersion& /*aVersion*/, const RMessage2& /*aMessage*/) const
-    {
-    return new(ELeave) CMemoryMonitorSession();
-    }
-
-TInt CMemoryMonitorServer::RunError(TInt aError)
-    {
-    Message().Complete(aError);
-    //
-    // The leave will result in an early return from CServer::RunL(), skipping
-    // the call to request another message. So do that now in order to keep the
-    // server running.
-    ReStart();
-    return KErrNone;    // handled the error fully
-    }
-
-CMemoryMonitor& CMemoryMonitorServer::Monitor()
-    {
-    return iMonitor;
-    }
-
-void CMemoryMonitorServer::CloseAppsFinished(TBool aMemoryGood)
-    {
-    iSessionIter.SetToFirst();
-    CSession2* s;
-    while ((s = iSessionIter++) != 0)
-        static_cast<CMemoryMonitorSession*>(s)->CloseAppsFinished(aMemoryGood);
-    }
-
-
-CMemoryMonitorSession::CMemoryMonitorSession()
-    {
-    }
-
-void CMemoryMonitorSession::CreateL()
-    {
-    }
-
-CMemoryMonitorSession::~CMemoryMonitorSession()
-    {
-    }
-
-CMemoryMonitorServer& CMemoryMonitorSession::Server()
-    {
-    return *static_cast<CMemoryMonitorServer*>(const_cast<CServer2*>(CSession2::Server()));
-    }
-
-CMemoryMonitor& CMemoryMonitorSession::Monitor()
-    {
-    return Server().Monitor();
-    }
-
-void CMemoryMonitorSession::ServiceL(const RMessage2& aMessage)
-    {
-    aMessage.HasCapabilityL(ECapabilityWriteDeviceData); //Leaves if client has not correct capability
-    switch (aMessage.Function())
-        {
-        case EOomMonitorRequestFreeMemory:
-            if (!iRequestFreeRam.IsNull())
-                PanicClient(aMessage, EPanicRequestActive);
-            // message will be completed when CloseAppsFinished() is called.
-            iRequestFreeRam = aMessage;
-            Monitor().StartFreeSomeRamL(aMessage.Int0());
-            break;
-
-        case EOomMonitorCancelRequestFreeMemory:
-            if (!iRequestFreeRam.IsNull())
-                iRequestFreeRam.Complete(KErrCancel);
-            aMessage.Complete(KErrNone);
-            break;
-
-        case EOomMonitorThisAppIsNotExiting:
-            Monitor().AppNotExiting(aMessage.Int0());
-            aMessage.Complete(KErrNone);
-            break;
-
-        default:
-            PanicClient(aMessage, EPanicIllegalFunction);
-            break;
-        }
-    }
-
-void CMemoryMonitorSession::CloseAppsFinished(TBool aMemoryGood)
-    {
-    if (!iRequestFreeRam.IsNull())
-        iRequestFreeRam.Complete(aMemoryGood ? KErrNone : KErrNoMemory);
-    }
-
-
 void PanicClient(const RMessagePtr2& aMessage,TOomMonitorClientPanic aPanic)
     {
+    FUNC_LOG;
+
     aMessage.Panic(KMemoryMonitorServerName, aPanic);
     }
 
--- a/sysresmonitoring/oommonitor/src/oommonitorplugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/src/oommonitorplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -16,26 +16,33 @@
 */
 
 
+#include <apgwgnam.h>
 #include "oommonitorplugin.h"
-#include "oommonitor.h"
-#include <apgwgnam.h>
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
 
 // TLS is used to store the CMemoryMonitor pointer, CMemoryMonitor
 // being the main object in the OOM monitor thread. This allows
 // plugins to access the CMemoryMonitor object easily.
 EXPORT_C void SetMemoryMonitorTls(CMemoryMonitor* aMonitor)
     {
+    FUNC_LOG;
+
     Dll::SetTls(aMonitor);
     }
 
 CMemoryMonitor* MemoryMonitorTls()
     {
+    FUNC_LOG;
+
     return static_cast<CMemoryMonitor*>(Dll::Tls());
     }
 
 
 void OomMonitorPluginPanic(TOomMonitorPluginPanic aReason)
     {
+    FUNC_LOG;
+
     _LIT(KCat, "OomMonitorPlugin");
     User::Panic(KCat, aReason);
     }
@@ -43,34 +50,53 @@
 
 EXPORT_C COomMonitorPlugin::COomMonitorPlugin()
 : iMemoryMonitor(MemoryMonitorTls())
-	{
-	__ASSERT_ALWAYS(iMemoryMonitor, OomMonitorPluginPanic(EOomMonitorPluginPanic_PluginConstructedOutsideOomMonitorThread));
-	}
+    {
+    FUNC_LOG;
+
+    __ASSERT_ALWAYS(iMemoryMonitor, OomMonitorPluginPanic(EOomMonitorPluginPanic_PluginConstructedOutsideOomMonitorThread));
+    }
 
 EXPORT_C COomMonitorPlugin::~COomMonitorPlugin()
-	{
-	}
+    {
+    FUNC_LOG;
+    }
 
 EXPORT_C void COomMonitorPlugin::ConstructL()
-	{
-	// CAppOomMonitorPlugin assumes ConstructL is empty
-	}
+    {
+    FUNC_LOG;
+
+    // CAppOomMonitorPlugin assumes ConstructL is empty
+    }
 
 EXPORT_C void COomMonitorPlugin::ExtensionInterface(TUid /*aInterfaceId*/, TAny*& /*aImplementaion*/)
-	{
-	}
+    {
+    FUNC_LOG;
+    }
 
 EXPORT_C RFs& COomMonitorPlugin::FsSession()
     {
+    FUNC_LOG;
+
     return iMemoryMonitor->iFs;
     }
 
 EXPORT_C RWsSession& COomMonitorPlugin::WsSession()
     {
+    FUNC_LOG;
+
     return iMemoryMonitor->iWs;
     }
 
 
+
+EXPORT_C void COomMonitorPluginV2::FreeRam()
+    {
+    // Note that OomMonitorV2 will not call this version of the function
+    // so it does not need to be implemented in derived classes.
+    }
+
+
+
 EXPORT_C CAppOomMonitorPlugin* CAppOomMonitorPlugin::NewL(TUid aAppUid)
     {
     CAppOomMonitorPlugin* self = new(ELeave) CAppOomMonitorPlugin(aAppUid);
@@ -96,18 +122,18 @@
 void CAppOomMonitorPlugin::SendMessageToApp(TInt aMessage)
     {
     RWsSession& ws = WsSession();
-	TInt wgId = 0;
+    TInt wgId = 0;
 
     do 
         {
-		CApaWindowGroupName::FindByAppUid(iAppUid, ws, wgId);
-		if (wgId>0)
-			{
-        	TWsEvent event;
-        	event.SetType(aMessage);
-        	event.SetTimeNow();
-			ws.SendEventToWindowGroup(wgId, event);
-			}
+        CApaWindowGroupName::FindByAppUid(iAppUid, ws, wgId);
+        if (wgId>0)
+            {
+            TWsEvent event;
+            event.SetType(aMessage);
+            event.SetTimeNow();
+            ws.SendEventToWindowGroup(wgId, event);
+            }
         }
-	while (wgId>0);
+    while (wgId>0);
     }
--- a/sysresmonitoring/oommonitor/src/oommonitorsession.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/sysresmonitoring/oommonitor/src/oommonitorsession.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -16,33 +16,104 @@
 */
 
 
-#include "oommonitorsession.h"
+#include <coemain.h>
+#include <oommonitorsession.h>
 #include "oommonitorclientserver.h"
+#include "oompanic.h"
+#include "OomTraces.h"
 
 EXPORT_C TInt ROomMonitorSession::Connect()
-	{
-	return CreateSession(KMemoryMonitorServerName, TVersion(0,0,0));
-	}
+    {
+    FUNC_LOG;
+
+    return CreateSession(KMemoryMonitorServerName, TVersion(0,0,0));
+    }
 
 EXPORT_C TInt ROomMonitorSession::RequestFreeMemory(TInt aBytesRequested)
-	{
-	TIpcArgs p(aBytesRequested);
-	return SendReceive(EOomMonitorRequestFreeMemory, p);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested);
+    return SendReceive(EOomMonitorRequestFreeMemory, p);
+    }
+
+EXPORT_C TInt ROomMonitorSession::RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable)
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested, aMinimumBytesNeeded, aPluginId, aBytesAvailable);
+    TInt ret = SendReceive(EOomMonitorRequestOptionalRam, p);
+    if (ret >= 0)
+        {
+        aBytesAvailable = ret;
+        ret = KErrNone;
+        }
+    
+    return ret;
+    }
+
+
+
+EXPORT_C void ROomMonitorSession::RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TRequestStatus& aStatus)
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested, aMinimumBytesNeeded, aPluginId);
+    SendReceive(EOomMonitorRequestOptionalRam, p, aStatus);
+    }
 
 EXPORT_C void ROomMonitorSession::RequestFreeMemory(TInt aBytesRequested, TRequestStatus& aStatus)
-	{
-	TIpcArgs p(aBytesRequested);
-	SendReceive(EOomMonitorRequestFreeMemory, p, aStatus);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested);
+    SendReceive(EOomMonitorRequestFreeMemory, p, aStatus);
+    }
 
 EXPORT_C void ROomMonitorSession::CancelRequestFreeMemory()
-	{
-	SendReceive(EOomMonitorCancelRequestFreeMemory, TIpcArgs());
-	}
+    {
+    FUNC_LOG;
+
+    SendReceive(EOomMonitorCancelRequestFreeMemory, TIpcArgs());
+    }
 
 EXPORT_C void ROomMonitorSession::ThisAppIsNotExiting(TInt aWgId)
-	{
-	TIpcArgs p(aWgId);
-	SendReceive(EOomMonitorThisAppIsNotExiting, p);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aWgId);
+    SendReceive(EOomMonitorThisAppIsNotExiting, p);
+    }
+
+
+EXPORT_C void ROomMonitorSession::SetOomPriority(TOomPriority aPriority)
+    {
+    FUNC_LOG;
+
+    CCoeEnv* coeEnv = CCoeEnv::Static();
+
+    __ASSERT_DEBUG(coeEnv, OomMonitorPanic(KNoCoeEnvFound));    
+
+    if (coeEnv)
+        {
+        TInt wgId = coeEnv->RootWin().Identifier();
+        TIpcArgs p(wgId);
+        switch (aPriority)
+            {
+            case EOomPriorityNormal:
+                SendReceive(EOomMonitorSetPriorityNormal, p);
+                break;
+            case EOomPriorityHigh:
+                SendReceive(EOomMonitorSetPriorityHigh, p);
+                break;
+            case EOomPriorityBusy:
+                SendReceive(EOomMonitorSetPriorityBusy, p);
+                break;
+            default:
+                OomMonitorPanic(KOomInvalidPriority);
+                break;
+            }
+        }
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomoutofmemorywatcher.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomoutofmemorywatcher.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+#include <u32hal.h>
+
+// ======================================================================
+// class COutOfMemoryWatcher
+// - notifies when free memory crosses preset thresholds
+// ======================================================================
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+COutOfMemoryWatcher* COutOfMemoryWatcher::NewL(CMemoryMonitor& aMonitor, TInt aLowRamThreshold, TInt aGoodRamThreshold, TBool aSwapUsageMonitored, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+    FUNC_LOG;
+
+    COutOfMemoryWatcher* self = new (ELeave) COutOfMemoryWatcher(aMonitor, aSwapUsageMonitored);
+    CleanupStack::PushL(self);
+    self->ConstructL(aLowRamThreshold, aGoodRamThreshold, aLowSwapThreshold, aGoodSwapThreshold);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+COutOfMemoryWatcher::~COutOfMemoryWatcher()
+    {
+    FUNC_LOG;
+
+    Cancel();
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+COutOfMemoryWatcher::COutOfMemoryWatcher(CMemoryMonitor& aMonitor, TBool aSwapUsageMonitored)
+:   CActive(CActive::EPriorityStandard),
+    iMemoryMonitor(aMonitor),
+    iSwapUsageMonitored(aSwapUsageMonitored)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void COutOfMemoryWatcher::ConstructL(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+    FUNC_LOG;
+
+    UserSvr::SetMemoryThresholds(aLowRamThreshold,aGoodRamThreshold);
+    if (iSwapUsageMonitored)
+        {
+        SVMSwapThresholds thresholds;
+        thresholds.iLowThreshold = aLowSwapThreshold;
+        thresholds.iGoodThreshold = aGoodSwapThreshold;
+        UserSvr::HalFunction(EHalGroupVM, EVMHalSetSwapThresholds, &thresholds, 0);
+        }
+    User::LeaveIfError(iChangeNotifier.Create());
+    }
+
+void COutOfMemoryWatcher::UpdateThresholds(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+    FUNC_LOG;
+
+    UserSvr::SetMemoryThresholds(aLowRamThreshold,aGoodRamThreshold);
+    if (iSwapUsageMonitored)
+        {
+        SVMSwapThresholds thresholds;
+        thresholds.iLowThreshold = aLowSwapThreshold;
+        thresholds.iGoodThreshold = aGoodSwapThreshold;
+        UserSvr::HalFunction(EHalGroupVM, EVMHalSetSwapThresholds, &thresholds, 0);
+        }
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void COutOfMemoryWatcher::Start()
+    {
+    FUNC_LOG;
+
+    if (!IsActive())
+        {
+        iChangeNotifier.Logon(iStatus);
+        SetActive();
+        }
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void COutOfMemoryWatcher::DoCancel()
+    {
+    FUNC_LOG;
+
+    iChangeNotifier.LogonCancel();
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void COutOfMemoryWatcher::RunL()
+    {
+    FUNC_LOG;
+
+    TInt status = iStatus.Int();
+
+    if (status < 0)
+        {
+        User::Leave(status);
+        }
+
+    // Check for memory status change.
+    if (status & EChangesFreeMemory)
+        {
+        iMemoryMonitor.FreeMemThresholdCrossedL();
+        }
+
+    // We are not active until FreeMemThresholdCrossedL returns.
+    Start();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oompanic.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Panic codes for OOM monitor.
+*
+*/
+
+#include "oompanic.h"
+
+#include <e32std.h>
+
+void OomMonitorPanic(TOomMonitorPanic aReason)
+    {
+    _LIT(KCat, "OomMonitor");
+    User::Panic(KCat, aReason);
+    }
+
+void OomConfigParserPanic(TInt aReason)
+    {
+    _LIT(KParserCat, "OomParser");
+    User::Panic(KParserCat, aReason);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oompluginwaiter.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+
+#include "oompluginwaiter.h"
+#include "oomrunplugin.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+
+COomPluginWaiter* COomPluginWaiter::NewL(TInt aMillisecondsToWait, COomRunPlugin& aCallbackClass)
+    {
+    FUNC_LOG;
+
+    COomPluginWaiter* self = new (ELeave) COomPluginWaiter(aMillisecondsToWait, aCallbackClass);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomPluginWaiter::COomPluginWaiter(TInt aMillisecondsToWait, COomRunPlugin& aCallbackClass) : CTimer(EPriorityStandard), iMillisecondsToWait(aMillisecondsToWait), iCallbackClass(aCallbackClass)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+// Start the timer, it will call the plugin back when it expires
+void COomPluginWaiter::Start()
+    {
+    FUNC_LOG;
+
+    HighRes(iMillisecondsToWait * KMicrosecondsInMillisecond);
+    }
+    
+void COomPluginWaiter::RunL()
+    {
+    FUNC_LOG;
+
+    iCallbackClass.WaitCompleted();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomrunplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+#include "oomrunplugin.h"
+#include "OomTraces.h"
+#include "oommemorymonitor.h"
+#include "oommonitorplugin.h"
+#include "oompanic.h"
+
+COomRunPlugin* COomRunPlugin::NewL(TUint aPluginId, COomRunPluginConfig& aConfig, MOomActionObserver& aStateChangeObserver, COomMonitorPlugin& aPlugin, COomMonitorPluginV2* aV2Plugin)
+    {
+    FUNC_LOG;
+
+    COomRunPlugin* self = new (ELeave) COomRunPlugin(aPluginId, aConfig, aStateChangeObserver, aPlugin, aV2Plugin);
+    CleanupStack::PushL(self);
+    self->ConstructL(aConfig);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Run the OOM plugin in order to free memory
+// Call the COomAction::MemoryFreed when it is done
+void COomRunPlugin::FreeMemory(TInt aBytesRequested, TBool)
+    {
+    FUNC_LOG;
+    TRACES1("COomRunPlugin::FreeMemory: iPluginId = %x", iPluginId);        
+
+    // Ask the plugin to free some memory
+
+    // Do we have a V2 plugin, if so then use it
+    if (iV2Plugin)
+        iV2Plugin->FreeRam(aBytesRequested);
+    else
+        // If we only have a V1 plugin then use that
+        iPlugin.FreeRam();
+    
+    iFreeMemoryCalled = ETrue;
+    
+    // Wait for the required time before we signal completion.
+    __ASSERT_DEBUG(!iPluginWaiter->IsActive(), OomMonitorPanic(KStartingActivePluginWaiter));    
+    iPluginWaiter->Start();
+    }
+
+// Call the memory good function on the plugin but...
+// only if there is an outstanding FreeMemory request
+void COomRunPlugin::MemoryGood()
+    {
+    FUNC_LOG;
+
+    if (iFreeMemoryCalled)
+        {
+        iPlugin.MemoryGood();
+        iFreeMemoryCalled = EFalse;
+        }
+    }
+
+COomRunPlugin::~COomRunPlugin()
+    {
+    FUNC_LOG;
+
+    delete iPluginWaiter;
+    }
+
+COomRunPlugin::COomRunPlugin(TUint aPluginId, COomRunPluginConfig& aConfig, MOomActionObserver& aStateChangeObserver, COomMonitorPlugin& aPlugin, COomMonitorPluginV2* aV2Plugin) : COomAction(aStateChangeObserver), iPluginId(aPluginId), iPlugin(aPlugin), iConfig(aConfig), iV2Plugin(aV2Plugin)
+    {
+    FUNC_LOG;
+    }
+
+void COomRunPlugin::ConstructL(COomRunPluginConfig& aPluginConfig)
+    {
+    FUNC_LOG;
+
+    TInt waitDuration = CMemoryMonitor::GlobalConfig().iDefaultWaitAfterPlugin;
+    
+    if (aPluginConfig.WaitAfterPluginDefined())
+        {
+        // If the wait duration for this plugin is overridden then use the overridden value
+        waitDuration = aPluginConfig.WaitAfterPlugin();
+        }
+    
+    iPluginWaiter = COomPluginWaiter::NewL(waitDuration, *this);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomrunpluginconfig.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#include "oomrunpluginconfig.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+
+COomRunPluginConfig* COomRunPluginConfig::NewL(TUint aPluginId, TOomPluginType aPluginType)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig* self = new (ELeave) COomRunPluginConfig(aPluginId, aPluginType);
+    return self;
+    }
+
+TUint COomRunPluginConfig::CalculatePluginPriority(const COomWindowGroupList& aWindowGroupList)
+    {
+    FUNC_LOG;
+
+    // Call the Priority function on the CActionConfig base class
+    // This function will check if any rules match the current system state and then adjust the priority if they do
+    // Rules may apply to system plugins or application plugins
+    return Priority(aWindowGroupList, aWindowGroupList.GetIndexFromAppId(iTargetAppId));
+    }
+
+
+COomRunPluginConfig::~COomRunPluginConfig()
+    {
+    FUNC_LOG;
+    }
+    
+
+COomRunPluginConfig::COomRunPluginConfig(TUint aPluginId, TOomPluginType aPluginType) : COomActionConfig(aPluginId), iPluginId(aPluginId), iPluginType(aPluginType)
+    {
+    FUNC_LOG;
+
+    iSyncMode = EContinueIgnoreMaxBatchSize;
+    iCallIfTargetAppNotRunning = ETrue;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomsubscribehelper.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include <e32property.h>
+#include "oomsubscribehelper.h"
+#include "OomTraces.h"
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CSubscribeHelper::CSubscribeHelper(TCallBack aCallBack, RProperty& aProperty)
+    : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CSubscribeHelper::~CSubscribeHelper()
+    {
+    FUNC_LOG;
+
+    Cancel();
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CSubscribeHelper::Subscribe()
+    {
+    FUNC_LOG;
+
+    if (!IsActive())
+        {
+        iProperty.Subscribe(iStatus);
+        SetActive();
+        }
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CSubscribeHelper::StopSubscribe()
+    {
+    FUNC_LOG;
+
+    Cancel();
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CSubscribeHelper::RunL()
+    {
+    FUNC_LOG;
+
+    if (iStatus.Int() == KErrNone)
+        {
+        iCallBack.CallBack();
+        Subscribe();
+        }
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CSubscribeHelper::DoCancel()
+    {
+    FUNC_LOG;
+
+    iProperty.Cancel();
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomwindowgrouplist.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,480 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  A wrapper for the window group list, adding additional functionality required by OOM Monitor v2.
+*
+*/
+
+#include <w32std.h>
+#include <e32std.h>
+#include <apgtask.h>
+#include <apgwgnam.h>
+
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+#include "oompanic.h"
+
+_LIT(KDummyWgName, "20");
+const TInt KPreallocatedSpaceForAppList = 50;
+
+const TUint KOomTicksPerSecond = 1000;
+
+COomWindowGroupList::TOomWindowGroupProperties::TOomWindowGroupProperties() :  iIdleTickTime(0), iDynamicPriority(EOomPriorityNormal)
+    {
+    FUNC_LOG;
+    }
+
+// Update the list of window groups
+void COomWindowGroupList::Refresh()
+    {
+    FUNC_LOG;
+    
+#ifdef _DEBUG
+    TRAPD(err, RefreshL());
+    if (err)
+        {
+        TRACES1("COomWindowGroupList::Refresh(): RefreshL leave %d", err);
+        }
+#else
+    TRAP_IGNORE(RefreshL());
+    // Ignore any error
+    // Errors are very unlikely, the only possibility is OOM errors (which should be very unlikely due to pre-created, re-reserved lists)
+    // The outcome of any error is that the most foreground operations will be missing from the list
+    // meaning that they will not be considered candidates for closing
+#endif    
+    }
+
+// Update the list of window groups
+// Should be called whenever the 
+void COomWindowGroupList::RefreshL()
+    {
+    FUNC_LOG;
+
+    // Refresh window group list
+    // get all window groups, with info about parents
+    TInt numGroups = iWs.NumWindowGroups(0);
+    iWgIds.ReserveL(numGroups);
+    User::LeaveIfError(iWs.WindowGroupList(0, &iWgIds));
+    
+    // Remove all child window groups, promote parents to foremost child position
+    CollapseWindowGroupTree();
+    
+    // Note the current foreground window ID (if there is one)
+    TBool oldForegroundWindowExists = EFalse;
+
+    TInt oldForegroundWindowId;
+    if (iWgIds.Count() > 0)
+        {
+        oldForegroundWindowId = iWgIds[0].iId;
+        oldForegroundWindowExists = ETrue;
+        }    
+    
+    // Cleanup the idletime hash map to remove idle times for any windows that have closed
+    RemovePropertiesForClosedWindowsL();
+    
+    // Update the idle tick on the old foreground application (which might now be in the background)
+    // This will be set to the current system tick count and will be used later to determine the idle time
+    if (oldForegroundWindowExists)
+        {
+        TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(oldForegroundWindowId);
+        if (wgProperties)
+            {
+            wgProperties->iIdleTickTime = User::NTickCount();
+            }
+        
+        // If there is no idle tick entry for this window ID then it will be created in the next step...
+        }
+    
+    TInt index = iWgIds.Count();
+    
+    while (index--)
+        {
+        // See if there is a tick count entry for each window in the list
+        TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[index].iId);
+        
+        if (!wgProperties)
+            {
+            TOomWindowGroupProperties wgProperties;
+            wgProperties.iIdleTickTime = User::NTickCount();
+            // If there is no idle tick entry for this window then add one
+            iWgToPropertiesMapping.InsertL(iWgIds[index].iId, wgProperties);
+            }
+        }
+    }
+
+
+
+void COomWindowGroupList::RemovePropertiesForClosedWindowsL()
+    {
+    FUNC_LOG;
+    
+    // First, clear the existing set of window IDs (it would be quicker to delete it BUT we have reserved memory for it and don't want to be allocating in low memory conditions)
+    RHashSet<TInt>::TIter windowIdSetIter(iExistingWindowIds);
+    while (windowIdSetIter.Next())
+        {
+        windowIdSetIter.RemoveCurrent();
+        }
+    
+    // Create the set of existing window IDs (this saves expensive/repeated searching later on)
+    TInt index = iWgIds.Count();
+    while (index--)
+        {
+        iExistingWindowIds.InsertL(iWgIds[index].iId);
+        }
+    
+    // Iterate the idle-time hash map - remove any items where the window no longer exists
+    RHashMap<TInt, TOomWindowGroupProperties>::TIter wgToIdleIterator(iWgToPropertiesMapping);
+    while (wgToIdleIterator.NextKey())
+        {
+        // If the current key (window ID) does not exist in the set then remove the idle-time as it is no longer relevant
+        if (!iExistingWindowIds.Find(*(wgToIdleIterator.CurrentKey())))
+                wgToIdleIterator.RemoveCurrent();
+        }
+    }
+
+
+TUint COomWindowGroupList::AppId(TInt aIndex, TBool aResolveFromThread) const
+    {
+    FUNC_LOG;
+
+    // get the app's details
+    TPtr wgPtr(iWgNameBuf->Des());
+    
+    TUid uid;
+    
+    __ASSERT_DEBUG(aIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    TInt wgId = iWgIds[aIndex].iId;
+    
+    TInt err = iWs.GetWindowGroupNameFromIdentifier(wgId, wgPtr);
+    
+    if (KErrNone != err)
+        // If there is an error then set the UID to 0;
+        {
+        uid.iUid = 0;
+        }
+    else 
+        {
+        iWgName->SetWindowGroupName(iWgNameBuf); // iWgName takes ownership of iWgNameBuf
+        uid = iWgName->AppUid(); // This UID comes from the app, not the mmp!
+        if (aResolveFromThread && uid.iUid == 0)
+            {
+            TApaTask task(iWs);
+            task.SetWgId(wgId);
+            TThreadId threadId = task.ThreadId();
+            
+            TUint resolvedUid = 0;
+            RThread appThread;
+            TInt err = appThread.Open( threadId );
+            if ( err == KErrNone )
+                {
+                resolvedUid = appThread.SecureId().iId;
+                }
+            appThread.Close();
+            TRACES2("COomWindowGroupList::AppId: NULL wg UID, taking from thread; resolvedUid = %x aIndex = %d", resolvedUid, aIndex);            
+            return resolvedUid;               
+            }
+        }
+    
+    return uid.iUid;
+    }
+    
+
+TTimeIntervalSeconds COomWindowGroupList::IdleTime(TInt aIndex) const
+    {
+    FUNC_LOG;
+
+    TUint32 currentTickCount = User::NTickCount();
+        
+    __ASSERT_DEBUG(aIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    const TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aIndex].iId);
+    
+    TTimeIntervalSeconds idleTime = 0;
+    
+    if (wgProperties)
+        {
+        // This should also handle the case where the current tick count has wrapped to a lower value than the idle tick time
+        // It will only work if it has wrapped once, but
+        TUint32 differenceBetweenTickCounts = currentTickCount - wgProperties->iIdleTickTime;
+        idleTime = differenceBetweenTickCounts / KOomTicksPerSecond;
+        }
+    
+    return idleTime;
+    }
+  
+
+
+void COomWindowGroupList::CollapseWindowGroupTree()
+    {
+    FUNC_LOG;
+
+    // start from the front, wg count can reduce as loop runs
+    for (TInt ii=0; ii<iWgIds.Count();)
+        {
+        RWsSession::TWindowGroupChainInfo& info = iWgIds[ii];
+        if (info.iParentId > 0)        // wg has a parent
+            {
+            // Look for the parent position
+            TInt parentPos = ii;        // use child pos as not-found signal
+            TInt count = iWgIds.Count();
+            for (TInt jj=0; jj<count; jj++)
+                {
+                if (iWgIds[jj].iId == info.iParentId)
+                    {
+                    parentPos = jj;
+                    break;
+                    }
+                }
+
+            if (parentPos > ii)  // parent should be moved forward
+                {
+                iWgIds[ii] = iWgIds[parentPos];
+                iWgIds.Remove(parentPos);
+                }
+            else if (parentPos < ii)  // parent is already ahead of child, remove child
+                iWgIds.Remove(ii);
+            else                    // parent not found, skip
+                ii++;
+            }
+        else    // wg does not have a parent, skip
+            ii++;
+        }    
+    }
+
+
+
+COomWindowGroupList::COomWindowGroupList(RWsSession& aWs) : iWs(aWs)
+    {
+    FUNC_LOG;
+    }
+
+
+
+void COomWindowGroupList::ConstructL()
+    {
+    FUNC_LOG;
+
+    // Reserve enough space to build an app list later.
+    iWgIds.ReserveL(KPreallocatedSpaceForAppList);
+    iUncollapsedWgIds.ReserveL(KPreallocatedSpaceForAppList);
+    
+    // Reserve enough space for the WG to idle tick mapping
+    iWgToPropertiesMapping.ReserveL(KPreallocatedSpaceForAppList);
+    
+    // Reserve enough space for CApaWindowGroupName.
+    iWgName = CApaWindowGroupName::NewL(iWs);
+    iWgNameBuf = HBufC::NewL(CApaWindowGroupName::EMaxLength);
+    (*iWgNameBuf) = KDummyWgName;
+    iWgName->SetWindowGroupName(iWgNameBuf);    // iWgName takes ownership of iWgNameBuf
+    
+    RefreshL();
+    }
+
+
+
+COomWindowGroupList* COomWindowGroupList::NewL(RWsSession& aWs)
+    {
+    FUNC_LOG;
+
+    COomWindowGroupList* self = new (ELeave) COomWindowGroupList(aWs);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+
+COomWindowGroupList::~COomWindowGroupList()
+    {
+    FUNC_LOG;
+
+    iWgIds.Close();
+    iUncollapsedWgIds.Close();
+    iWgToPropertiesMapping.Close();
+    iExistingWindowIds.Close();
+    delete iWgName;
+    }
+
+
+void COomWindowGroupList::SetPriorityBusy(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    Refresh();
+    
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityBusy;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+
+TInt COomWindowGroupList::FindParentIdL(TInt aWgId)
+    {
+    TInt numGroups = iWs.NumWindowGroups(0);
+    iUncollapsedWgIds.ReserveL(numGroups);
+    User::LeaveIfError(iWs.WindowGroupList(0, &iUncollapsedWgIds));
+
+    TInt parentPos = KErrNotFound;
+   
+    //loop through the window group list
+    for (TInt i=0; i<numGroups; i++)
+        {
+        //find the index for the required aWgId
+        __ASSERT_DEBUG(i < iUncollapsedWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+        if (iUncollapsedWgIds[i].iId == aWgId)
+            {
+            parentPos = i;
+            break;
+            }
+        }
+
+    if (parentPos >=0 )
+        {
+        __ASSERT_DEBUG(parentPos < iUncollapsedWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+        while (iUncollapsedWgIds[parentPos].iParentId > 0)
+            {
+            // find the index for the parent
+            for (TInt j=0; j<numGroups; j++)
+                {
+                __ASSERT_DEBUG(j < iUncollapsedWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+                if (iUncollapsedWgIds[j].iId == iUncollapsedWgIds[parentPos].iParentId)
+                    {
+                    parentPos = j;
+                    __ASSERT_DEBUG(parentPos < iUncollapsedWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+                    break; // break out of inner loop
+                    }
+                }
+            }
+        __ASSERT_DEBUG(parentPos < iUncollapsedWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+        return iUncollapsedWgIds[parentPos].iId;
+        }
+    else 
+        {
+        return KErrNotFound;
+        }
+    }
+
+
+TBool COomWindowGroupList::IsBusy(TInt aWgIndex)
+    {
+    TBool isBusy = EFalse;
+    __ASSERT_DEBUG(aWgIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aWgIndex].iId);
+    if (wgProperties)
+        {
+        isBusy = (wgProperties->iDynamicPriority == EOomPriorityBusy);
+        }
+    
+    return isBusy;
+    }
+
+// Returns ETrue if an application has registered itself as high priority at runtime
+TBool COomWindowGroupList::IsDynamicHighPriority(TInt aWgIndex)
+    {
+    FUNC_LOG;
+
+    TBool isHighPriority = EFalse;
+    __ASSERT_DEBUG(aWgIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aWgIndex].iId);
+    if (wgProperties)
+        {
+        isHighPriority = (wgProperties->iDynamicPriority == EOomPriorityHigh);
+        }
+    
+    return isHighPriority;
+    }
+
+CApaWindowGroupName* COomWindowGroupList::WgName() const
+    {
+    return iWgName;
+    }
+
+void COomWindowGroupList::SetPriorityNormal(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    Refresh();
+    
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityNormal;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+
+void COomWindowGroupList::SetPriorityHigh(TInt aWgId)
+    {
+    FUNC_LOG;
+
+    Refresh();
+
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityHigh;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+// Find the specificed application in the window group list and return the index
+TInt COomWindowGroupList::GetIndexFromAppId(TUint aAppId) const
+    {
+    FUNC_LOG;
+
+    TInt indexInGroupList = Count();
+    TBool appFoundInWindowGroupList = EFalse;
+    
+    while (indexInGroupList--)
+        {
+        if (AppId(indexInGroupList, ETrue) == aAppId)
+            {
+            appFoundInWindowGroupList = ETrue;
+            break;
+            }
+        }
+    
+    if (!appFoundInWindowGroupList)
+        indexInGroupList = KAppNotInWindowGroupList;
+
+    return indexInGroupList;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/src/oomwserveventreceiver.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include <akneiksrvc.h>
+#include <apgwgnam.h>
+#include "oomwserveventreceiver.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+
+#include "apgwgnam.h"
+
+CWservEventReceiver::CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs)
+: CActive(CActive::EPriorityStandard), iMonitor(aMonitor), iWs(aWs), iWg(aWs)
+    {
+    FUNC_LOG;
+
+    CActiveScheduler::Add(this);
+    }
+
+CWservEventReceiver::~CWservEventReceiver()
+    {
+    FUNC_LOG;
+
+    Cancel();
+    iWg.Close();
+    }
+
+void CWservEventReceiver::ConstructL()
+    {
+    FUNC_LOG;
+
+    User::LeaveIfError(iWg.Construct((TUint32)this, EFalse));
+    iWg.SetOrdinalPosition(0, ECoeWinPriorityNeverAtFront);
+    iWg.EnableFocusChangeEvents();
+    Queue();
+    }
+
+void CWservEventReceiver::Queue()
+    {
+    FUNC_LOG;
+
+    iWs.EventReady(&iStatus);
+    SetActive();
+    }
+
+void CWservEventReceiver::DoCancel()
+    {
+    FUNC_LOG;
+
+    iWs.EventReadyCancel();
+    }
+
+void CWservEventReceiver::RunL()
+    {
+    FUNC_LOG;
+
+    TWsEvent event;
+    iWs.GetEvent(event);
+    if (event.Type() == EEventFocusGroupChanged)
+        {
+        // The following is done in order to avoid changing application threshholds when fastswap is activated
+        // 1) get the new focused app's details
+        // 2) we check to see if the fastswap uid caused the change
+        // 3a) If it didn't we proceed as normal: handleFocusedWgChangeL is called
+        // 3b) If not, we skip handleFocusedWgChangeL
+        CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(iWs, iWs.GetFocusWindowGroup());
+        if(wgName->AppUid() != KUidFastSwap)
+            {
+            iMonitor.HandleFocusedWgChangeL();
+            }
+        CleanupStack::PopAndDestroy(wgName);
+        }
+    
+    Queue();
+    }
--- a/sysresmonitoring/oommonitor/tsrc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/conf/oomtest.cfg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,3 @@
+[StifSettings]
+CheckHeapBalance= on
+[EndStifSettings]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/data/oomconfig.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,89 @@
+<!--
+ Copyright (c) 2004-20010 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+-->
+
+
+
+
+<oom_config>
+
+	<global_settings low_ram_threshold="4096" good_ram_threshold="5000" max_app_close_batch="4" default_wait_after_plugin="10" max_app_exit_time="5000">
+		<force_check priority="8"></force_check>
+	</global_settings>
+
+	<app_specific_thresholds>
+		<app uid="E6CFBA08" low_ram_threshold="8192" good_ram_threshold="10000"></app>
+	</app_specific_thresholds>
+
+	<app_close_settings>
+		<close_app uid="DEFAULT_APP" priority="9" sync_mode="check">
+			<app_close_idle_priority idle_time="30" priority="9"></app_close_idle_priority>
+		</close_app>
+
+		<close_app uid="BUSY_APP" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+		<close_app uid="HIGH_PRIORITY_APP" priority="10" sync_mode="check"></close_app>
+
+		<close_app uid="E6CFBA03" priority="7" sync_mode="check">
+			<foreground_app_priority if_foreground_app_id="E6CFBA02" priority="9"></foreground_app_priority>
+		</close_app>
+
+		<close_app uid="E6CFBA02" priority="8" sync_mode="check"></close_app>
+
+		<close_app uid="E6CFBA01" priority="9" sync_mode="check">
+			<app_close_idle_priority idle_time="30" priority="2"></app_close_idle_priority>
+		</close_app>
+
+		<close_app uid="E6CFBA09" priority="7" sync_mode="continue"></close_app>
+		<close_app uid="E6CFBA04" priority="7" sync_mode="check"></close_app>
+		<close_app uid="E6CFBA05" priority="7" sync_mode="check"></close_app>
+		
+		<close_app uid="E6CFBA07" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+		<close_app uid="E6CFBA06" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+		<close_app uid="E6CFBA0A" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+		<close_app uid="101f4cd5" priority="NEVER_CLOSE" sync_mode="check"></close_app><!-- log -->
+		<close_app uid="1028311d" priority="NEVER_CLOSE" sync_mode="check"></close_app><!-- test app 39 for  uishellservices_menucontentservice. related to content harvester panic -->
+		<close_app uid="101f4cd2" priority="NEVER_CLOSE" sync_mode="check"></close_app><!-- application shell menu	-->		
+	</app_close_settings>
+
+
+	<system_plugin_settings>
+		<system_plugin uid="DEFAULT_PLUGIN" priority="10"></system_plugin>
+		<system_plugin uid="10286A34" priority="5"></system_plugin>
+	
+		<system_plugin uid="10286A35" priority="6">
+			<plugin_foreground_app_priority target_app_id="E6CFBA07" priority="9"></plugin_foreground_app_priority>
+		</system_plugin>
+	
+		<system_plugin uid="10286A36" priority="7"></system_plugin>
+		<system_plugin uid="10286A37" priority="8" wait="1000" sync_mode="check"></system_plugin>
+		<system_plugin uid="10286A3C" priority="4"></system_plugin>
+		<system_plugin uid="10286A3D" priority="9"></system_plugin>
+	</system_plugin_settings>
+
+	<app_plugin_settings>
+		<app_plugin uid="10286A3A" target_app_id="E6CFBA02" priority="4" sync_mode="check" call_if_target_app_not_running="false"></app_plugin>
+		<app_plugin uid="10286A3B" target_app_id="E6CFBA03" priority="3" call_if_target_app_not_running="true"></app_plugin>
+		<app_plugin uid="10286A38" target_app_id="E6CFBA03" priority="9" call_if_target_app_not_running="false">
+			<plugin_idle_priority idle_time="30" priority="1"></plugin_idle_priority>
+		</app_plugin>
+
+		<app_plugin uid="10286A39" target_app_id="E6CFBA01" priority="10">
+			<plugin_foreground_app_priority target_app_id="TARGET_APP" priority="1"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	</app_plugin_settings>
+
+</oom_config>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTEXPORTS
+../init/oomtest.ini    /epoc32/winscw/c/testframework/testframework.ini
+../conf/oomtest.cfg    /epoc32/winscw/c/testframework/oomtest.cfg
+../data/oomconfig.xml  /epoc32/release/winscw/udeb/z/private/10207218/oomconfig.xml
+../data/oomconfig.xml  /epoc32/release/winscw/urel/z/private/10207218/oomconfig.xml
+
+PRJ_TESTMMPFILES
+#include "../t_oomallocserver/group/bld.inf"
+#include "../t_oomdummyapp/group/bld.inf"
+#include "../t_oomdummyplugin/group/bld.inf"
+#include "../t_oomdummyplugin2/group/bld.inf"
+//#include "../t_oomharness/group/bld.inf"
+#include "../t_oomtestapp/group/bld.inf"
+#include "../t_oomharness_stif/group/bld.inf"
+
+//  End of File  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/group/oomtest.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,68 @@
+;Languages
+&EN
+
+#{"t_oomharness_stif"},(0x101FB3E7),1,0,0,TYPE=SA
+
+;Localised Vendor name
+%{"t_oomharness_stif EN"}
+
+; Vendor name
+: "t_oomharness_stif"
+
+"\epoc32\release\armv5\urel\t_oomharness_stif.dll"-"c:\sys\bin\t_oomharness_stif.dll"
+"..\init\oomtest.ini"-"c:\testframework\oomtest.ini"
+"..\conf\oomtest.cfg"-"c:\testframework\oomtest.cfg"
+;"..\data\oomconfig.xml"-"c:\private\10207218\oomconfig.xml"
+
+"\epoc32\release\armv5\urel\t_oomclient.dll"-"c:\sys\bin\t_oomclient.dll"
+"\epoc32\release\armv5\urel\t_oomallocserver.exe"-"c:\sys\bin\t_oomallocserver.exe"
+
+"\epoc32\release\armv5\urel\t_oomdummyapp_0xE6CFBA00.exe"-"c:\sys\bin\t_oomdummyapp_0xE6CFBA00.exe"
+"\epoc32\data\z\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"-"c:\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomdummyplugin.dll"-"c:\sys\bin\t_oomdummyplugin.dll"
+"\epoc32\data\z\resource\plugins\t_oomdummyplugin.rsc"-"c:\resource\plugins\t_oomdummyplugin.rsc"
+
+"\epoc32\release\armv5\urel\t_oomdummyplugin2.dll"-"c:\sys\bin\t_oomdummyplugin2.dll"
+"\epoc32\data\z\resource\plugins\t_oomdummyplugin2.rsc"-"c:\resource\plugins\t_oomdummyplugin2.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp.exe"-"c:\sys\bin\t_oomtestapp.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp.rsc"-"c:\resource\apps\t_oomtestapp.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp2.exe"-"c:\sys\bin\t_oomtestapp2.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp2.rsc"-"c:\resource\apps\t_oomtestapp2.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp2_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp2_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp3.exe"-"c:\sys\bin\t_oomtestapp3.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp3.rsc"-"c:\resource\apps\t_oomtestapp3.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp3_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp3_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp4.exe"-"c:\sys\bin\t_oomtestapp4.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp4.rsc"-"c:\resource\apps\t_oomtestapp4.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp4_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp4_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp5.exe"-"c:\sys\bin\t_oomtestapp5.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp5.rsc"-"c:\resource\apps\t_oomtestapp5.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp5_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp5_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp6.exe"-"c:\sys\bin\t_oomtestapp6.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp6.rsc"-"c:\resource\apps\t_oomtestapp6.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp6_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp6_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp7.exe"-"c:\sys\bin\t_oomtestapp7.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp7.rsc"-"c:\resource\apps\t_oomtestapp7.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp7_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp7_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp8.exe"-"c:\sys\bin\t_oomtestapp8.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp8.rsc"-"c:\resource\apps\t_oomtestapp8.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp8_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp8_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp9.exe"-"c:\sys\bin\t_oomtestapp9.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp9.rsc"-"c:\resource\apps\t_oomtestapp9.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp9_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp9_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp10.exe"-"c:\sys\bin\t_oomtestapp10.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp10.rsc"-"c:\resource\apps\t_oomtestapp10.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp10_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp10_reg.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/group/oomtest_manualtestrun.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,68 @@
+;Languages
+&EN
+
+#{"t_oomharness_stif"},(0x101FB3E7),1,0,0,TYPE=SA
+
+;Localised Vendor name
+%{"t_oomharness_stif EN"}
+
+; Vendor name
+: "t_oomharness_stif"
+
+"\epoc32\release\armv5\urel\t_oomharness_stif.dll"-"c:\sys\bin\t_oomharness_stif.dll"
+"..\init\oomtest.ini"-"c:\testframework\oomtest.ini"
+"..\conf\oomtest.cfg"-"c:\testframework\oomtest.cfg"
+"..\data\oomconfig.xml"-"c:\data\oomconfig.xml"
+
+"\epoc32\release\armv5\urel\t_oomclient.dll"-"c:\sys\bin\t_oomclient.dll"
+"\epoc32\release\armv5\urel\t_oomallocserver.exe"-"c:\sys\bin\t_oomallocserver.exe"
+
+"\epoc32\release\armv5\urel\t_oomdummyapp_0xE6CFBA00.exe"-"c:\sys\bin\t_oomdummyapp_0xE6CFBA00.exe"
+"\epoc32\data\z\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"-"c:\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomdummyplugin.dll"-"c:\sys\bin\t_oomdummyplugin.dll"
+"\epoc32\data\z\resource\plugins\t_oomdummyplugin.rsc"-"c:\resource\plugins\t_oomdummyplugin.rsc"
+
+"\epoc32\release\armv5\urel\t_oomdummyplugin2.dll"-"c:\sys\bin\t_oomdummyplugin2.dll"
+"\epoc32\data\z\resource\plugins\t_oomdummyplugin2.rsc"-"c:\resource\plugins\t_oomdummyplugin2.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp.exe"-"c:\sys\bin\t_oomtestapp.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp.rsc"-"c:\resource\apps\t_oomtestapp.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp2.exe"-"c:\sys\bin\t_oomtestapp2.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp2.rsc"-"c:\resource\apps\t_oomtestapp2.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp2_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp2_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp3.exe"-"c:\sys\bin\t_oomtestapp3.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp3.rsc"-"c:\resource\apps\t_oomtestapp3.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp3_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp3_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp4.exe"-"c:\sys\bin\t_oomtestapp4.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp4.rsc"-"c:\resource\apps\t_oomtestapp4.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp4_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp4_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp5.exe"-"c:\sys\bin\t_oomtestapp5.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp5.rsc"-"c:\resource\apps\t_oomtestapp5.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp5_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp5_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp6.exe"-"c:\sys\bin\t_oomtestapp6.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp6.rsc"-"c:\resource\apps\t_oomtestapp6.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp6_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp6_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp7.exe"-"c:\sys\bin\t_oomtestapp7.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp7.rsc"-"c:\resource\apps\t_oomtestapp7.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp7_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp7_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp8.exe"-"c:\sys\bin\t_oomtestapp8.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp8.rsc"-"c:\resource\apps\t_oomtestapp8.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp8_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp8_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp9.exe"-"c:\sys\bin\t_oomtestapp9.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp9.rsc"-"c:\resource\apps\t_oomtestapp9.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp9_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp9_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp10.exe"-"c:\sys\bin\t_oomtestapp10.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp10.rsc"-"c:\resource\apps\t_oomtestapp10.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp10_reg.rsc"-"c:\private\10003a3f\import\apps\t_oomtestapp10_reg.rsc"
Binary file sysresmonitoring/oommonitor/tsrc/oomtest/group/oomtest_manualtestrun.sis has changed
Binary file sysresmonitoring/oommonitor/tsrc/oomtest/group/oomtest_manualtestrun.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/group/readme.txt	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,13 @@
+To test in emulator:
+	1) bldmake bldfiles + abld test build 
+	2) start emulator
+	3) run "consoleui" from "eshell"
+
+To test (manually) in HW:
+    1) bldmake bldfiles + abld test build
+    2) create and sign sis from oomtest_manualtestrun.pkg (note that oomtest.pkg is for automated testing)
+    3) install sis into phone
+    4) select OOM test config xml from c:\data\ (use t_oomtestapp -> Options -> Select...)
+    5) reboot phone (config xml is taken in use)
+    6) rename oomtest.ini in c:\testframework to testframework.ini (use FileBrowse)
+    7) run "consoleui" from "eshell"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/init/oomtest.ini	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,173 @@
+#
+# This is STIFTestFramework initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if 
+#                 report exist.
+
+[Engine_Defaults]
+
+TestReportMode= FullReport		# Possible values are: 
+					# 'Summary', 'Environment', 'TestCases' or 'FullReport'
+
+CreateTestReport= YES			# Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT			# Possible values: TXT or HTML
+TestReportOutput= FILE			# Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
+
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= NormalCases.txt
+# TestCaseFile= SmokeCases.txt
+# TestCaseFile= ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+[New_Module]
+ModuleName= t_oomharness_stif
+TestCaseFile= c:\testframework\oomtest.cfg
+[End_Module]
+
+
+#Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= testcases1.cfg
+#TestCaseFile= testcases2.cfg
+#TestCaseFile= manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIFTestFramework logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number 
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' 
+
+#CreateLogDirectories= YES		# Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML			# Possible values: TXT or HTML
+#EmulatorOutput= FILE			# Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML			# Possible values: TXT or HTML
+#HardwareOutput= FILE			# Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE		# Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES			# Possible values: YES or NO
+#WithTimeStamp= YES			# Possible values: YES or NO
+#WithLineBreak= YES			# Possible values: YES or NO
+#WithEventRanking= YES			# Possible values: YES or NO
+
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/stub/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTEXPORTS
+../../data/oomconfig.xml  /epoc32/data/Z/private/10207218/oomconfig.xml
+
+PRJ_TESTMMPFILES
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/bwins/t_oomclientu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,9 @@
+EXPORTS
+	?Configure@ROOMAllocSession@@QAEHVTUid@@III@Z @ 1 NONAME ; int ROOMAllocSession::Configure(class TUid, unsigned int, unsigned int, unsigned int)
+	?Connect@ROOMAllocSession@@QAEHXZ @ 2 NONAME ; int ROOMAllocSession::Connect(void)
+	?MemoryGood@ROOMAllocSession@@QAEHVTUid@@@Z @ 3 NONAME ; int ROOMAllocSession::MemoryGood(class TUid)
+	?MemoryLow@ROOMAllocSession@@QAEHVTUid@@@Z @ 4 NONAME ; int ROOMAllocSession::MemoryLow(class TUid)
+	?Reset@ROOMAllocSession@@QAEHXZ @ 5 NONAME ; int ROOMAllocSession::Reset(void)
+	?StartAllocating@ROOMAllocSession@@QAEHXZ @ 6 NONAME ; int ROOMAllocSession::StartAllocating(void)
+	?StopAllocating@ROOMAllocSession@@QAEHXZ @ 7 NONAME ; int ROOMAllocSession::StopAllocating(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/clisrc/client.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include "t_oomclient.h"
+#include "../inc/clientserver.h"
+
+const TInt KServerDefaultMessageSlots = 1; //Number of message slots available per session.
+const TInt KServerRetryCount = 2;
+
+static TInt StartServer()
+//
+// Start the server process. Simultaneous launching
+// of two such processes should be detected when the second one attempts to
+// create the server object, failing with KErrAlreadyExists.
+//
+	{
+	const TUidType serverUid(KNullUid,KNullUid,KServerUid3);
+	RProcess server;
+	TInt r=server.Create(KAllocServerImg,KNullDesC,serverUid);
+	if (r!=KErrNone)
+		return r;
+	TRequestStatus stat;
+	server.Rendezvous(stat);
+	if (stat!=KRequestPending)
+		server.Kill(0);		// abort startup
+	else
+		server.Resume();	// logon OK - start the server
+	User::WaitForRequest(stat);		// wait for start or death
+	// 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
+	r=(server.ExitType()==EExitPanic) ? KErrGeneral : stat.Int();
+	server.Close();
+	return r;
+	}
+
+EXPORT_C TInt ROOMAllocSession::Connect()
+//
+// Connect to the server, attempting to start it if necessary
+//
+	{
+	TInt retry=KServerRetryCount;
+	for (;;)
+		{
+		TInt r=CreateSession(KAllocServerName,TVersion(0,0,0),KServerDefaultMessageSlots);
+		if (r!=KErrNotFound && r!=KErrServerTerminated)
+			return r;
+		if (--retry==0)
+			return r;
+		r=StartServer();
+		if (r!=KErrNone && r!=KErrAlreadyExists)
+			return r;
+		}
+	}
+
+EXPORT_C TInt ROOMAllocSession::Reset()
+	{
+	return SendReceive(EAllocServReset);
+	}
+
+EXPORT_C TInt ROOMAllocSession::StartAllocating()
+	{
+	return SendReceive(EAllocServStart);
+	}
+
+EXPORT_C TInt ROOMAllocSession::StopAllocating()
+	{
+	return SendReceive(EAllocServStop);
+	}
+
+EXPORT_C TInt ROOMAllocSession::MemoryLow(TUid aPlugin)
+	{
+	return SendReceive(EAllocServMemoryLow, TIpcArgs(aPlugin.iUid));
+	}
+
+EXPORT_C TInt ROOMAllocSession::MemoryGood(TUid aPlugin)
+	{
+	return SendReceive(EAllocServMemoryGood, TIpcArgs(aPlugin.iUid));
+	}
+
+EXPORT_C TInt ROOMAllocSession::Configure(TUid aPlugin, TUint aAllocRate, TUint aAllocInitial, TUint aAllocLimit)
+	{
+	return SendReceive(EAllocServConfig,TIpcArgs(aPlugin.iUid, aAllocRate, aAllocInitial, aAllocLimit));
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/eabi/t_oomclientu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,9 @@
+EXPORTS
+	_ZN16ROOMAllocSession10MemoryGoodE4TUid @ 1 NONAME
+	_ZN16ROOMAllocSession14StopAllocatingEv @ 2 NONAME
+	_ZN16ROOMAllocSession15StartAllocatingEv @ 3 NONAME
+	_ZN16ROOMAllocSession5ResetEv @ 4 NONAME
+	_ZN16ROOMAllocSession7ConnectEv @ 5 NONAME
+	_ZN16ROOMAllocSession9ConfigureE4TUidjjj @ 6 NONAME
+	_ZN16ROOMAllocSession9MemoryLowE4TUid @ 7 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+t_oomallocserver.mmp
+t_oomallocclient.mmp
+
+PRJ_TESTEXPORTS
+../inc/t_oomclient.h ../../inc/t_oomclient.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/group/t_oomallocclient.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+
+target t_oomclient.dll
+targettype dll
+
+capability ALL -TCB
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+//project server
+sourcepath ../clisrc/
+
+source client.cpp
+
+library euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/group/t_oomallocserver.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET		  t_oomallocserver.exe
+TARGETTYPE	  exe
+UID			 0 0x10286A3E
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
+SOURCEPATH ../srvsrc
+SOURCE server.cpp
+SOURCE CAllocManager.cpp
+
+library euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/inc/CAllocManager.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#ifndef CALLOCMANAGER_H
+#define CALLOCMANAGER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+class CAllocSimulation : public CBase
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * Destructor.
+	 */
+	~CAllocSimulation();
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CAllocSimulation* NewL(TInt aAllocLimit, TInt aAllocInitial,
+			TInt aAllocRate, TUint aUid);
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CAllocSimulation* NewLC(TInt aAllocLimit, TInt aAllocInitial,
+			TInt aAllocRate, TUint aUid);
+
+	void SimulationTick();
+	void SetPaused(TBool aPaused);
+	void FreeMemory();
+	
+	static TBool CompareTo(const TUint *aUid, const CAllocSimulation& aSelf);
+private:
+
+	/**
+	 * Constructor for performing 1st stage construction
+	 */
+	CAllocSimulation(TInt aAllocLimit, TInt aAllocInitial,
+			TInt aAllocRate, TUint aUid);
+
+	/**
+	 * EPOC default constructor for performing 2nd stage construction
+	 */
+	void ConstructL();
+
+	TInt iAllocLimit;
+	TInt iAllocInitial;
+	TInt iAllocRate;
+	TUint iUid;
+	RChunk iChunk;
+	TBool iPaused;
+	TUint iAllocCurrent;
+	};
+
+/**
+ *  CCAllocManager
+ * 
+ */
+class CAllocManager : public CBase
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * Destructor.
+	 */
+	~CAllocManager();
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CAllocManager* NewL();
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CAllocManager* NewLC();
+
+	TInt Reset();
+	TInt StartAllocating();
+	TInt StopAllocating();
+	void ConfigureL(TUint aPlugin, TUint aAllocRate, TUint aAllocInitial, TUint aAllocLimit);
+	TInt MemoryLow(TUint aPlugin);
+	TInt MemoryGood(TUint aPlugin);
+private:
+
+	/**
+	 * Constructor for performing 1st stage construction
+	 */
+	CAllocManager();
+
+	/**
+	 * EPOC default constructor for performing 2nd stage construction
+	 */
+	void ConstructL();
+
+	static TInt SimulationTickStatic(TAny *aPtr);
+	void SimulationTick();
+
+	TInt FindSimulation(TUint aUid);
+	
+	CPeriodic *iAllocationTimer;
+	RPointerArray<CAllocSimulation> iSimulations;
+	};
+
+#endif // CALLOCMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/inc/clientserver.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+#include <e32base.h>
+
+
+// server name
+
+_LIT(KAllocServerName,"t_oomAllocServer");
+_LIT(KAllocServerImg,"t_oomAllocServer");
+const TUid KServerUid3={0x10286A3E};
+
+// A version must be specifyed when creating a session with the server
+
+const TUint KCountServMajorVersionNumber=0;
+const TUint KCountServMinorVersionNumber=1;
+const TUint KCountServBuildVersionNumber=1;
+
+IMPORT_C TInt StartThread(RThread& aServerThread);
+
+
+// Function codes (opcodes) used in message passing between client and server
+enum TAllocServRqst
+    {
+    EAllocServReset,
+    EAllocServConfig,
+    EAllocServStart,
+    EAllocServStop,
+    EAllocServMemoryLow,
+    EAllocServMemoryGood
+    };
+
+enum TAllocServLeave
+{
+    ENonNumericString = 99
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/inc/server.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <e32base.h>
+#include "clientserver.h"
+#include "callocmanager.h"
+
+enum TMyPanic
+	{
+	EPanicBadDescriptor,
+	EPanicIllegalFunction,
+	EPanicAlreadyReceiving
+	};
+
+void PanicClient(const RMessagePtr2& aMessage,TMyPanic TMyPanic);
+
+class CShutdown : public CTimer
+	{
+	enum {KMyShutdownDelay=0x200000};	// approx 2s
+public:
+	inline CShutdown();
+	inline void ConstructL();
+	inline void Start();
+private:
+	void RunL();
+	};
+
+class CMyServer : public CServer2
+	{
+public:
+	static CServer2* NewLC();
+	void AddSession();
+	void DropSession();
+	void Send(const TDesC& aMessage);
+	CAllocManager& AllocManager();
+	~CMyServer();
+private:
+	CMyServer();
+	void ConstructL();
+	void DefinePropertiesL();
+	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
+private:
+	TInt iSessionCount;
+	CShutdown iShutdown;
+	CAllocManager *iAllocManager;
+	};
+
+class CMySession : public CSession2
+	{
+public:
+	CMySession();
+	void CreateL();
+	void Send(const TDesC& aMessage);
+private:
+	~CMySession();
+	inline CMyServer& Server();
+	void ServiceL(const RMessage2& aMessage);
+	void ServiceError(const RMessage2& aMessage,TInt aError);
+	inline TBool ReceivePending() const;
+private:
+	RMessagePtr2 iReceiveMsg;
+	TInt iReceiveLen;
+	};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/inc/t_oomclient.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_CLIENT_H__
+#define __T_CLIENT_H__
+
+#include <e32std.h>
+
+class ROOMAllocSession : public RSessionBase
+	{
+public:
+	IMPORT_C TInt Connect();
+	IMPORT_C TInt Reset();
+	IMPORT_C TInt StartAllocating();
+	IMPORT_C TInt StopAllocating();
+	IMPORT_C TInt Configure(TUid aPlugin, TUint aAllocRate, TUint aAllocInitial, TUint aAllocLimit);
+	IMPORT_C TInt MemoryLow(TUid aPlugin);
+	IMPORT_C TInt MemoryGood(TUid aPlugin);
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/srvsrc/CAllocManager.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include "CAllocManager.h"
+#include <e32property.h>
+#include "t_oomdummyplugin_properties.h"
+
+const TInt KOneSecond = 1000000;
+
+CAllocManager::CAllocManager()
+	{
+	// No implementation required
+	}
+
+CAllocManager::~CAllocManager()
+	{
+	delete iAllocationTimer;
+	iSimulations.ResetAndDestroy();
+	}
+
+CAllocManager* CAllocManager::NewLC()
+	{
+	CAllocManager* self = new (ELeave) CAllocManager();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+CAllocManager* CAllocManager::NewL()
+	{
+	CAllocManager* self = CAllocManager::NewLC();
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+
+void CAllocManager::ConstructL()
+	{
+	iAllocationTimer = CPeriodic::NewL(CActive::EPriorityStandard);
+	}
+
+TInt CAllocManager::SimulationTickStatic(TAny *aPtr)
+	{
+	((CAllocManager*)aPtr)->SimulationTick();
+	return KErrNone;
+	}
+
+void CAllocManager::SimulationTick()
+	{
+	for(TInt i=iSimulations.Count()-1; i>=0; i--)
+		{
+		iSimulations[i]->SimulationTick();
+		}
+	}
+
+TInt CAllocManager::Reset()
+	{
+	StopAllocating();
+	iSimulations.ResetAndDestroy();
+	return KErrNone;
+	}
+
+TInt CAllocManager::StartAllocating()
+	{
+	iAllocationTimer->Cancel();
+	iAllocationTimer->Start(KOneSecond, KOneSecond, TCallBack(SimulationTickStatic, this));
+	return KErrNone;
+	}
+
+TInt CAllocManager::StopAllocating()
+	{
+	iAllocationTimer->Cancel();
+	return KErrNone;
+	}
+
+void CAllocManager::ConfigureL(TUint aPlugin, TUint aAllocRate, TUint aAllocInitial, TUint aAllocLimit)
+	{
+	TInt sim = FindSimulation(aPlugin);
+	if(sim>=0)
+		{
+		delete iSimulations[sim];
+		iSimulations.Remove(sim);
+		}
+	CAllocSimulation* newsim = CAllocSimulation::NewLC(aAllocLimit, aAllocInitial, aAllocRate, aPlugin);
+	iSimulations.AppendL(newsim);
+	CleanupStack::Pop(newsim);
+	}
+
+TInt CAllocManager::MemoryLow(TUint aPlugin)
+	{
+	TInt sim = FindSimulation(aPlugin);
+	if(sim>=0)
+		{
+		iSimulations[sim]->SetPaused(ETrue);
+		iSimulations[sim]->FreeMemory();
+		return KErrNone;
+		}
+	else return KErrNotFound;
+	}
+
+TInt CAllocManager::MemoryGood(TUint aPlugin)
+	{
+	TInt sim = FindSimulation(aPlugin);
+	if(sim>=0)
+		{
+		iSimulations[sim]->SetPaused(EFalse);
+		return KErrNone;
+		}
+	else return KErrNotFound;
+	}
+
+TInt CAllocManager::FindSimulation(TUint aUid)
+	{
+	return iSimulations.Find<TUint>(aUid, CAllocSimulation::CompareTo);
+	}
+
+CAllocSimulation::CAllocSimulation(TInt aAllocLimit, TInt aAllocInitial,
+		TInt aAllocRate, TUint aUid) : 
+		iAllocLimit(aAllocLimit),
+		iAllocInitial(aAllocInitial),
+		iAllocRate(aAllocRate),
+		iUid(aUid)
+	{
+	// No implementation required
+	}
+
+CAllocSimulation::~CAllocSimulation()
+	{
+	iChunk.Close();
+	}
+
+CAllocSimulation* CAllocSimulation::NewLC(TInt aAllocLimit, TInt aAllocInitial,
+		TInt aAllocRate, TUint aUid)
+	{
+	CAllocSimulation* self = new (ELeave) CAllocSimulation(aAllocLimit, aAllocInitial,
+			aAllocRate, aUid);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+CAllocSimulation* CAllocSimulation::NewL(TInt aAllocLimit, TInt aAllocInitial,
+		TInt aAllocRate, TUint aUid)
+	{
+	CAllocSimulation* self = CAllocSimulation::NewLC(aAllocLimit, aAllocInitial,
+			aAllocRate, aUid);
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+
+void CAllocSimulation::ConstructL()
+	{
+	User::LeaveIfError(iChunk.CreateLocal(iAllocInitial, iAllocLimit));
+	}
+
+void CAllocSimulation::SimulationTick()
+	{
+	if(!iPaused)
+		{
+		TUint allocnext = iAllocCurrent + iAllocRate;
+		if(allocnext < iAllocInitial) allocnext = iAllocInitial;
+		else if(allocnext > iAllocLimit) allocnext = iAllocLimit;
+		if(iAllocCurrent != allocnext && KErrNone == iChunk.Adjust(iAllocCurrent))
+			{
+			iAllocCurrent = allocnext;
+			RProperty::Set(KUidOomPropertyCategory, iUid + KOOMDummyPluginCurrentAllocationBytes, iAllocCurrent);
+			}
+		}
+	}
+
+void CAllocSimulation::SetPaused(TBool aPaused)
+	{
+	iPaused = aPaused;
+	}
+
+void CAllocSimulation::FreeMemory()
+	{
+	iChunk.Adjust(0);
+	iAllocCurrent = 0;
+	RProperty::Set(KUidOomPropertyCategory, iUid + KOOMDummyPluginCurrentAllocationBytes, iAllocCurrent);
+	}
+
+TBool CAllocSimulation::CompareTo(const TUint* aUid, const CAllocSimulation& aSelf)
+	{
+	return *aUid==aSelf.iUid;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomallocserver/srvsrc/server.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include "server.h"
+#include <e32property.h>
+#include "t_oomdummyplugin_properties.h"
+
+inline CShutdown::CShutdown()
+	:CTimer(-1)
+	{CActiveScheduler::Add(this);}
+inline void CShutdown::ConstructL()
+	{CTimer::ConstructL();}
+inline void CShutdown::Start()
+	{After(KMyShutdownDelay);}
+
+inline CMyServer::CMyServer()
+	:CServer2(CActive::EPriorityStandard, ESharableSessions)
+	{}
+
+inline CMySession::CMySession()
+	{}
+inline CMyServer& CMySession::Server()
+	{return *static_cast<CMyServer*>(const_cast<CServer2*>(CSession2::Server()));}
+inline TBool CMySession::ReceivePending() const
+	{return !iReceiveMsg.IsNull();}
+
+
+///////////////////////
+
+void CMySession::CreateL()
+//
+// 2nd phase construct for sessions - called by the CServer framework
+//
+	{
+	Server().AddSession();
+	}
+
+CMySession::~CMySession()
+	{
+	Server().DropSession();
+	}
+
+void CMySession::Send(const TDesC& aMessage)
+//
+// Deliver the message to the client, truncating if required
+// If the write fails, panic the client, not the sender
+//
+	{
+	if (ReceivePending())
+		{
+		TPtrC m(aMessage);
+		if (iReceiveLen<aMessage.Length())
+			m.Set(m.Left(iReceiveLen));
+		TInt r=iReceiveMsg.Write(0,m);
+		if (r==KErrNone)
+			iReceiveMsg.Complete(KErrNone);
+		else
+			PanicClient(iReceiveMsg,EPanicBadDescriptor);
+		}
+	}
+
+void CMySession::ServiceL(const RMessage2& aMessage)
+//
+// Handle a client request.
+// Leaving is handled by CMyServer::ServiceError() which reports
+// the error code to the client
+//
+	{
+	switch (aMessage.Function())
+		{
+		case EAllocServReset:
+			aMessage.Complete(Server().AllocManager().Reset());
+			break;
+		case EAllocServConfig:
+			Server().AllocManager().ConfigureL(aMessage.Int0(),
+					aMessage.Int1(), aMessage.Int2(), aMessage.Int3());
+			aMessage.Complete(KErrNone);
+			break;
+		case EAllocServStart:
+			aMessage.Complete(Server().AllocManager().StartAllocating());
+			break;
+		case EAllocServStop:
+			aMessage.Complete(Server().AllocManager().StopAllocating());
+			break;
+		case EAllocServMemoryLow:
+			aMessage.Complete(Server().AllocManager().MemoryLow(aMessage.Int0()));
+			break;
+		case EAllocServMemoryGood:
+			aMessage.Complete(Server().AllocManager().MemoryGood(aMessage.Int0()));
+			break;
+		default:
+			PanicClient(aMessage, EPanicIllegalFunction);
+			break;
+		}
+	}
+
+void CMySession::ServiceError(const RMessage2& aMessage,TInt aError)
+//
+// Handle an error from CMySession::ServiceL()
+// A bad descriptor error implies a badly programmed client, so panic it;
+// otherwise use the default handling (report the error to the client)
+//
+	{
+	if (aError==KErrBadDescriptor)
+		PanicClient(aMessage,EPanicBadDescriptor);
+	CSession2::ServiceError(aMessage,aError);
+	}
+
+void CShutdown::RunL()
+//
+// Initiate server exit when the timer expires
+//
+	{
+	CActiveScheduler::Stop();
+	}
+
+CServer2* CMyServer::NewLC()
+	{
+	CMyServer* self=new(ELeave) CMyServer;
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+void CMyServer::ConstructL()
+//
+// 2nd phase construction - ensure the timer and server objects are running
+//
+	{
+	StartL(KAllocServerName);
+	iShutdown.ConstructL();
+	// ensure that the server still exits even if the 1st client fails to connect
+	iShutdown.Start();
+	DefinePropertiesL();
+	iAllocManager = CAllocManager::NewL();
+	}
+
+_LIT_SECURITY_POLICY_PASS(KAlwaysPass);
+
+void CMyServer::DefinePropertiesL()
+	{
+	TInt err;
+	for(TUint i=KUidOOMDummyPluginFirstImplementation;i<=KUidOOMDummyPluginLastImplementation;i++)
+		{
+		err = RProperty::Define(KUidOomPropertyCategory, i + KOOMDummyPluginLowMemoryCount, RProperty::EInt, KAlwaysPass, KAlwaysPass);
+		if(err != KErrNone && err != KErrAlreadyExists) User::Leave(err);
+		err = RProperty::Define(KUidOomPropertyCategory, i + KOOMDummyPluginGoodMemoryCount, RProperty::EInt, KAlwaysPass, KAlwaysPass);
+		if(err != KErrNone && err != KErrAlreadyExists) User::Leave(err);
+		err = RProperty::Define(KUidOomPropertyCategory, i + KOOMDummyPluginCurrentAllocationBytes, RProperty::EInt, KAlwaysPass, KAlwaysPass);
+		if(err != KErrNone && err != KErrAlreadyExists) User::Leave(err);
+		err = RProperty::Define(KUidOomPropertyCategory, i + KOOMDummyPluginBytesRequested, RProperty::EInt, KAlwaysPass, KAlwaysPass);
+		if(err != KErrNone && err != KErrAlreadyExists) User::Leave(err);
+		}
+	}
+
+CSession2* CMyServer::NewSessionL(const TVersion&,const RMessage2&) const
+//
+// Cretae a new client session. This should really check the version number.
+//
+	{
+	return new(ELeave) CMySession();
+	}
+
+void CMyServer::AddSession()
+//
+// A new session is being created
+// Cancel the shutdown timer if it was running
+//
+	{
+	++iSessionCount;
+	iShutdown.Cancel();
+	}
+
+void CMyServer::DropSession()
+//
+// A session is being destroyed
+// Start the shutdown timer if it is the last session.
+//
+	{
+	if (--iSessionCount==0)
+		iShutdown.Start();
+	}
+
+void CMyServer::Send(const TDesC& aMessage)
+//
+// Pass on the signal to all clients
+//
+	{
+	iSessionIter.SetToFirst();
+	CSession2* s;
+	while ((s=iSessionIter++)!=0)
+		static_cast<CMySession*>(s)->Send(aMessage);
+	}
+
+CMyServer::~CMyServer()
+	{
+	delete iAllocManager;
+	}
+
+CAllocManager& CMyServer::AllocManager()
+	{
+	return *iAllocManager;
+	}
+
+void PanicClient(const RMessagePtr2& aMessage,TMyPanic aPanic)
+//
+// RMessage::Panic() also completes the message. This is:
+// (a) important for efficient cleanup within the kernel
+// (b) a problem if the message is completed a second time
+//
+	{
+	_LIT(KPanic,"MyServer");
+	aMessage.Panic(KPanic,aPanic);
+	}
+
+static void RunServerL()
+//
+// Perform all server initialisation, in particular creation of the
+// scheduler and server and then run the scheduler
+//
+	{
+	// naming the server thread after the server helps to debug panics
+	User::LeaveIfError(RThread::RenameMe(KAllocServerName));
+	//
+	// create and install the active scheduler we need
+	CActiveScheduler* s=new(ELeave) CActiveScheduler;
+	CleanupStack::PushL(s);
+	CActiveScheduler::Install(s);
+	//
+	// create the server (leave it on the cleanup stack)
+	CMyServer::NewLC();
+	//
+	// Initialisation complete, now signal the client
+	RProcess::Rendezvous(KErrNone);
+	//
+	// Ready to run
+	CActiveScheduler::Start();
+	//
+	// Cleanup the server and scheduler
+	CleanupStack::PopAndDestroy(2);
+	}
+
+TInt E32Main()
+//
+// Server process entry-point
+//
+	{
+	__UHEAP_MARK;
+	//
+	CTrapCleanup* cleanup=CTrapCleanup::New();
+	TInt r=KErrNoMemory;
+	if (cleanup)
+		{
+		TRAP(r,RunServerL());
+		delete cleanup;
+		}
+	//
+	__UHEAP_MARKEND;
+	return r;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/data/t_oomdummyapp.rls	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+//  LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "t_oomdummyapp"
+
+// First item in "Options" menu pane
+#define qtn_command1 "Message"
+
+// Second item in "Options" menu pane
+#define qtn_command2 "Message from file"
+
+#define qtn_help "Help"
+
+#define qtn_about "About"
+
+// Third item in "Options" menu pane
+#define qtn_exit "Exit"
+
+// When user requests ECommand1 event, text below is shown.
+#define qtn_command1_text "OOM dummy app"
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\t_oomdummyapp_0xE6CFBA00"
+
+#define qtn_about_dialog_title "About"
+
+#define qtn_about_dialog_text "t_oomdummyapp Version 1.0.0\n\nAuthor: \n\nSupport: support@mycompany.com\n\n(c) Your copyright notice"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/data/t_oomdummyapp.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+//  RESOURCE IDENTIFIER
+NAME T_OO	// 4 letter ID
+
+
+//  INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "t_oomdummyapp.hrh"
+#include "t_oomdummyapp.rls"
+
+//  RESOURCE DEFINITIONS
+// -----------------------------------------------------------------------------
+//
+//	Define the resource file signature
+//	This resource should be empty.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE
+	{
+	}
+
+// -----------------------------------------------------------------------------
+//
+//	Default Document Name
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_default_document_name
+	{
+	buf="T_OO";
+	}
+
+// -----------------------------------------------------------------------------
+//
+//	Define default menu and CBA key.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+	{
+	menubar = r_menubar;
+	cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+	}
+
+
+// -----------------------------------------------------------------------------
+//
+//   r_menubar
+//   Main menubar
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_BAR r_menubar
+	{
+	titles =
+		{
+		MENU_TITLE { menu_pane = r_menu; }
+		};
+	}
+
+
+// -----------------------------------------------------------------------------
+//
+//   r_menu
+//   Menu for "Options"
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_menu
+	{
+	items =
+		{
+		// added the new Options menu command here
+		MENU_ITEM
+				{
+				command = ECommand1;
+				txt = qtn_command1;
+				},
+		MENU_ITEM
+				{
+				command = ECommand2;
+				txt = qtn_command2;
+				},
+		MENU_ITEM
+				{
+				command = EHelp;
+				txt = qtn_help;
+				},
+		MENU_ITEM
+				{
+				command = EAbout;
+				txt = qtn_about;
+				},
+		MENU_ITEM
+				{
+				command = EAknSoftkeyExit;
+				txt = qtn_exit;
+				}
+		};
+	}
+
+// -----------------------------------------------------------------------------
+//
+// About dialog resource.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE DIALOG r_about_query_dialog
+	{
+	flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
+	buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+	items=
+		{
+		DLG_LINE 
+			{
+			type = EAknCtPopupHeadingPane;
+			id = EAknMessageQueryHeaderId;
+			itemflags = EEikDlgItemNonFocusing;
+			control = AVKON_HEADING
+				{
+				};
+			},
+		DLG_LINE
+			{
+			type = EAknCtMessageQuery;
+			id = EAknMessageQueryContentId;
+			control = AVKON_MESSAGE_QUERY
+				{
+				};
+			}
+		};
+	}
+
+
+// -----------------------------------------------------------------------------
+//
+// Resources for messages.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF32 r_caption_string { buf=qtn_caption_string; }
+RESOURCE TBUF32 r_about_dialog_title { buf=qtn_about_dialog_title; }
+RESOURCE TBUF r_about_dialog_text { buf=qtn_about_dialog_text; }
+RESOURCE TBUF r_command1_text { buf=qtn_command1_text; }
+
+
+// ---------------------------------------------------------------------------- 
+//
+// r_localisable_app_info
+//
+// ---------------------------------------------------------------------------- 
+//
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+	{
+	short_caption = qtn_caption_string;
+	caption_and_icon = 
+	CAPTION_AND_ICON_INFO
+		{
+		caption = qtn_caption_string;
+
+		number_of_icons = 1;
+		icon_file = "\\resource\\apps\\t_oomdummyapp_0xE6CFBA00.mif";
+		};
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/data/t_oomdummyapp_reg.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include "t_oomdummyapp.hrh"
+#include "t_oomdummyapp.rls"
+#include <appinfo.rh>
+#include <t_oomdummyapp_0xE6CFBA00.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 _UID3
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="t_oomdummyapp_0xE6CFBA00";
+	localisable_resource_file =  qtn_loc_resource_file_1;
+	localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+	embeddability=KAppNotEmbeddable;
+	newfile=KAppDoesNotSupportNewFile;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/gfx/qgn_menu_t_oomdummyapp.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001       c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101       l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59       c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778       c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911        32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669        61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/Icons_scalable_dc.mk	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+# ============================================================================
+#  Name	 : Icons_scalable_dc.mk
+#  Part of  : t_oomdummyapp
+#
+#  Description: This is file for creating .mif file (scalable icon)
+# 
+# ============================================================================
+
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\t_oomdummyapp_0xE6CFBA00.mif
+
+ICONDIR=..\gfx
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE : $(ICONTARGETFILENAME)
+
+$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_t_oomdummyapp.svg
+	mifconv $(ICONTARGETFILENAME) \
+		/c32 $(ICONDIR)\qgn_menu_t_oomdummyapp.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+
+gnumakefile icons_scalable_dc.mk
+
+t_oomdummyapp.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/t_oomdummyapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET			t_oomdummyapp_0xE6CFBA00.exe
+TARGETTYPE		exe
+UID		  0x100039CE 0xE6CFBA00
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH		../src
+SOURCE			t_oomdummyapp.cpp
+SOURCE			t_oomdummyappApplication.cpp
+SOURCE			t_oomdummyappAppView.cpp
+SOURCE			t_oomdummyappAppUi.cpp
+SOURCE			t_oomdummyappDocument.cpp
+SOURCE			CMsgHandler.cpp
+
+SOURCEPATH		../data
+
+START RESOURCE	t_oomdummyapp.rss
+HEADER
+TARGET t_oomdummyapp_0xE6CFBA00
+TARGETPATH resource/apps
+END //RESOURCE
+
+START RESOURCE	t_oomdummyapp_reg.rss
+TARGET t_oomdummyapp_0xE6CFBA00_reg
+TARGETPATH 	  /private/10003a3f/apps
+END //RESOURCE
+
+USERINCLUDE	   ../inc
+USERINCLUDE    ../../inc
+USERINCLUDE    ../help
+
+LIBRARY		   euser.lib
+LIBRARY		   apparc.lib
+LIBRARY		   cone.lib
+LIBRARY		   eikcore.lib
+LIBRARY		   avkon.lib
+LIBRARY		   commonengine.lib
+LIBRARY		   efsrv.lib 
+LIBRARY		   estor.lib
+LIBRARY        aknnotify.lib
+LIBRARY        hlplch.lib 
+LIBRARY        oommonitor.lib
+
+LANG SC
+
+VENDORID	  	  0
+SECUREID		  0xE6CFBA00
+CAPABILITY	  	  ReadUserData WriteDeviceData
+
+#ifdef ENABLE_ABIV2_MODE
+  DEBUGGABLE_UDEBONLY
+#endif
+
+EPOCHEAPSIZE	0x1000 0x1000000
+EPOCSTACKSIZE   0x4000
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/help/Custom.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE cshcust SYSTEM "/cshlpcmp/dtd/CSHcust.dtd">
+<?xml:stylesheet href="/cshlpcmp/xsl/cshcust.xsl" title="CS-Help customization" type="text/xsl"?>
+<cshcust>
+<parastyle name="body" font="sansserif" size="10"/>
+<parastyle name="tip" font="sansserif" size="10" left="20"></parastyle>
+<parastyle name="note" font="sansserif" size="10" left="20"></parastyle>
+<parastyle name="important" font="sansserif" size="10" left="20"></parastyle>
+<body style="body"/>
+<titlestyle fontstyle="sansserif" size="10"/>
+<listbullet1style bulletchar="8226"/>
+<listbullet2style bulletchar="8226"/>
+<lists leftindent="20"/>
+</cshcust>
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/help/build_help.mk	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,45 @@
+# ============================================================================
+#  Name	 : build_help.mk
+#  Part of  : t_oomdummyapp
+# ============================================================================
+#  Name	 : build_help.mk
+#  Part of  : t_oomdummyapp
+#
+#  Description: This make file will build the application help file (.hlp)
+# 
+# ============================================================================
+
+do_nothing :
+	@rem do_nothing
+
+# build the help from the MAKMAKE step so the header file generated
+# will be found by cpp.exe when calculating the dependency information
+# in the mmp makefiles.
+
+MAKMAKE : t_oomdummyapp_0xE6CFBA00.hlp
+t_oomdummyapp_0xE6CFBA00.hlp : t_oomdummyapp.xml t_oomdummyapp.cshlp Custom.xml
+	cshlpcmp t_oomdummyapp.cshlp
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+	copy t_oomdummyapp_0xE6CFBA00.hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help
+endif
+
+BLD : do_nothing
+
+CLEAN :
+	del t_oomdummyapp_0xE6CFBA00.hlp
+	del t_oomdummyapp_0xE6CFBA00.hlp.hrh
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+		
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo t_oomdummyapp_0xE6CFBA00.hlp
+
+FINAL : do_nothing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/help/t_oomdummyapp.cshlp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE cshproj SYSTEM "/epoc32/tools/cshlpcmp/dtd/cshproj.dtd">
+<?xml:stylesheet href="/epoc32/tools/cshlpcmp/xsl/CSHproj.xsl" title="CS-Help project" type="text/xsl"?>
+<cshproj>
+<helpfileUID>0xE6CFBA00</helpfileUID>
+<directories>
+	<input></input>
+	<output></output>
+	<graphics></graphics>
+	<working>temp\</working>
+</directories>
+<files>
+	<source>
+	<xmlfile>t_oomdummyapp.xml</xmlfile>
+	</source>
+	<destination>t_oomdummyapp_0xE6CFBA00.hlp</destination>
+	<customization>custom.xml</customization>
+	</files>
+</cshproj>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/help/t_oomdummyapp.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!DOCTYPE asptml SYSTEM "/epoc32/tools/cshlpcmp/dtd/asptml.dtd">
+<?xml:stylesheet href="/epoc32/tools/cshlpcmp/xsl/asptml.xsl" title="asptml" type="text/xsl"?>
+<asptml>
+<uid value="0xE6CFBA00"/>
+<topic><category>t_oomdummyapp</category><topictitle>General Information</topictitle>
+<synonyms>General Information</synonyms>
+<context contextUID="General_Information"/>
+<index>General Information</index>
+<p>Insert your help here.</p>
+<p></p>
+</topic>
+</asptml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/CMsgHandler.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef CMSGHANDLER_H
+#define CMSGHANDLER_H
+
+#include <e32base.h>	// For CActive, link against: euser.lib
+#include <e32msgqueue.h>
+#include "t_oomdummyappAppUi.h"
+
+class CMsgHandler : public CActive
+	{
+public:
+	// Cancel and destroy
+	~CMsgHandler();
+
+	// Two-phased constructor.
+	static CMsgHandler* NewL(Ct_oomdummyappAppUi& aOwner);
+
+	// Two-phased constructor.
+	static CMsgHandler* NewLC(Ct_oomdummyappAppUi& aOwner);
+
+public:
+	// New functions
+	// Function for making the initial request
+	void StartL();
+
+private:
+	// C++ constructor
+	CMsgHandler(Ct_oomdummyappAppUi& aOwner);
+
+	// Second-phase constructor
+	void ConstructL();
+
+private:
+	// From CActive
+	// Handle completion
+	void RunL();
+
+	// How to cancel me
+	void DoCancel();
+
+	// Override to handle leaves from RunL(). Default implementation causes
+	// the active scheduler to panic.
+	TInt RunError(TInt aError);
+
+private:
+	TInt iState; // State of the active object
+	RMsgQueue<TInt> iMsgQueue; // messages from the harness
+	Ct_oomdummyappAppUi& iOwner;
+
+	};
+
+#endif // CMSGHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPP_HRH__
+#define __T_OOMDUMMYAPP_HRH__
+
+#define _UID3 0xE6CFBA00
+
+// t_oomdummyapp enumerate command codes
+enum Tt_oomdummyappIds
+	{
+	ECommand1 = 0x6001, // start value must not be 0
+	ECommand2,
+	EHelp,
+	EAbout
+	};
+
+#endif // __T_OOMDUMMYAPP_HRH__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyapp.pan	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPP_PAN__
+#define __T_OOMDUMMYAPP_PAN__
+
+/** t_oomdummyapp application panic codes */
+enum Tt_oomdummyappPanics
+	{
+	Et_oomdummyappUi = 1
+	// add further panics here
+	};
+
+inline void Panic(Tt_oomdummyappPanics aReason)
+	{
+	_LIT(applicationName, "t_oomdummyapp");
+	User::Panic(applicationName, aReason);
+	}
+
+#endif // __T_OOMDUMMYAPP_PAN__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappAppUi.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPPAPPUI_h__
+#define __T_OOMDUMMYAPPAPPUI_h__
+
+// INCLUDES
+#include <aknappui.h>
+
+// FORWARD DECLARATIONS
+class Ct_oomdummyappAppView;
+class CMsgHandler;
+
+// CLASS DECLARATION
+/**
+ * Ct_oomdummyappAppUi application UI class.
+ * Interacts with the user through the UI and request message processing
+ * from the handler class
+ */
+class Ct_oomdummyappAppUi : public CAknAppUi
+	{
+public:
+	
+	void SetPriorityBusy();
+	void SetPriorityHigh();
+	void SetPriorityNormal();
+	
+	// Constructors and destructor
+
+	/**
+	 * ConstructL.
+	 * 2nd phase constructor.
+	 */
+	void ConstructL();
+
+	/**
+	 * Ct_oomdummyappAppUi.
+	 * C++ default constructor. This needs to be public due to
+	 * the way the framework constructs the AppUi
+	 */
+	Ct_oomdummyappAppUi();
+
+	/**
+	 * ~Ct_oomdummyappAppUi.
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomdummyappAppUi();
+
+	void HandleHarnessCommandL(TInt aCommand);
+private:
+	// Functions from base classes
+
+	/**
+	 * From CEikAppUi, HandleCommandL.
+	 * Takes care of command handling.
+	 * @param aCommand Command to be handled.
+	 */
+	void HandleCommandL(TInt aCommand);
+
+	/**
+	 *  HandleStatusPaneSizeChange.
+	 *  Called by the framework when the application status pane
+	 *  size is changed.
+	 */
+	void HandleStatusPaneSizeChange();
+
+	/**
+	 *  From CCoeAppUi, HelpContextL.
+	 *  Provides help context for the application.
+	 *  size is changed.
+	 */
+	CArrayFix<TCoeHelpContext>* HelpContextL() const;
+
+private:
+	// Data
+
+	/**
+	 * The application view
+	 * Owned by Ct_oomdummyappAppUi
+	 */
+	Ct_oomdummyappAppView* iAppView;
+	CMsgHandler* iMsgHandler;
+
+	};
+
+#endif // __T_OOMDUMMYAPPAPPUI_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappAppView.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPPAPPVIEW_h__
+#define __T_OOMDUMMYAPPAPPVIEW_h__
+
+// INCLUDES
+#include <coecntrl.h>
+
+// CLASS DECLARATION
+class Ct_oomdummyappAppView : public CCoeControl
+	{
+public:
+	// New methods
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Create a Ct_oomdummyappAppView object, which will draw itself to aRect.
+	 * @param aRect The rectangle this view will be drawn to.
+	 * @return a pointer to the created instance of Ct_oomdummyappAppView.
+	 */
+	static Ct_oomdummyappAppView* NewL(const TRect& aRect);
+
+	/**
+	 * NewLC.
+	 * Two-phased constructor.
+	 * Create a Ct_oomdummyappAppView object, which will draw itself
+	 * to aRect.
+	 * @param aRect Rectangle this view will be drawn to.
+	 * @return A pointer to the created instance of Ct_oomdummyappAppView.
+	 */
+	static Ct_oomdummyappAppView* NewLC(const TRect& aRect);
+
+	/**
+	 * ~Ct_oomdummyappAppView
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomdummyappAppView();
+
+public:
+	// Functions from base classes
+
+	/**
+	 * From CCoeControl, Draw
+	 * Draw this Ct_oomdummyappAppView to the screen.
+	 * @param aRect the rectangle of this view that needs updating
+	 */
+	void Draw(const TRect& aRect) const;
+
+	/**
+	 * From CoeControl, SizeChanged.
+	 * Called by framework when the view size is changed.
+	 */
+	virtual void SizeChanged();
+
+private:
+	// Constructors
+
+	/**
+	 * ConstructL
+	 * 2nd phase constructor.
+	 * Perform the second phase construction of a
+	 * Ct_oomdummyappAppView object.
+	 * @param aRect The rectangle this view will be drawn to.
+	 */
+	void ConstructL(const TRect& aRect);
+
+	/**
+	 * Ct_oomdummyappAppView.
+	 * C++ default constructor.
+	 */
+	Ct_oomdummyappAppView();
+
+	};
+
+#endif // __T_OOMDUMMYAPPAPPVIEW_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappApplication.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPPAPPLICATION_H__
+#define __T_OOMDUMMYAPPAPPLICATION_H__
+
+// INCLUDES
+#include <aknapp.h>
+#include "t_oomdummyapp.hrh"
+
+// UID for the application;
+// this should correspond to the uid defined in the mmp file
+const TUid KUidt_oomdummyappApp =
+	{
+	_UID3
+	};
+
+// CLASS DECLARATION
+
+/**
+ * Ct_oomdummyappApplication application class.
+ * Provides factory to create concrete document object.
+ * An instance of Ct_oomdummyappApplication is the application part of the
+ * AVKON application framework for the t_oomdummyapp example application.
+ */
+class Ct_oomdummyappApplication : public CAknApplication
+	{
+public:
+	Ct_oomdummyappApplication(TUid aUid, TUint aAlloc);
+	// Functions from base classes
+
+	/**
+	 * From CApaApplication, AppDllUid.
+	 * @return Application's UID (KUidt_oomdummyappApp).
+	 */
+	TUid AppDllUid() const;
+
+	~Ct_oomdummyappApplication();
+protected:
+	// Functions from base classes
+
+	/**
+	 * From CApaApplication, CreateDocumentL.
+	 * Creates Ct_oomdummyappDocument document object. The returned
+	 * pointer in not owned by the Ct_oomdummyappApplication object.
+	 * @return A pointer to the created document object.
+	 */
+	CApaDocument* CreateDocumentL();
+	
+private:
+	TUid iUID;
+	TUint iAlloc;
+	TAny* iMemory;
+	};
+
+#endif // __T_OOMDUMMYAPPAPPLICATION_H__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappDocument.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,102 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMDUMMYAPPDOCUMENT_h__
+#define __T_OOMDUMMYAPPDOCUMENT_h__
+
+// INCLUDES
+#include <akndoc.h>
+
+// FORWARD DECLARATIONS
+class Ct_oomdummyappAppUi;
+class CEikApplication;
+
+// CLASS DECLARATION
+
+/**
+ * Ct_oomdummyappDocument application class.
+ * An instance of class Ct_oomdummyappDocument is the Document part of the
+ * AVKON application framework for the t_oomdummyapp example application.
+ */
+class Ct_oomdummyappDocument : public CAknDocument
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Construct a Ct_oomdummyappDocument for the AVKON application aApp
+	 * using two phase construction, and return a pointer
+	 * to the created object.
+	 * @param aApp Application creating this document.
+	 * @return A pointer to the created instance of Ct_oomdummyappDocument.
+	 */
+	static Ct_oomdummyappDocument* NewL(CEikApplication& aApp);
+
+	/**
+	 * NewLC.
+	 * Two-phased constructor.
+	 * Construct a Ct_oomdummyappDocument for the AVKON application aApp
+	 * using two phase construction, and return a pointer
+	 * to the created object.
+	 * @param aApp Application creating this document.
+	 * @return A pointer to the created instance of Ct_oomdummyappDocument.
+	 */
+	static Ct_oomdummyappDocument* NewLC(CEikApplication& aApp);
+
+	/**
+	 * ~Ct_oomdummyappDocument
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomdummyappDocument();
+
+public:
+	// Functions from base classes
+
+	/**
+	 * CreateAppUiL
+	 * From CEikDocument, CreateAppUiL.
+	 * Create a Ct_oomdummyappAppUi object and return a pointer to it.
+	 * The object returned is owned by the Uikon framework.
+	 * @return Pointer to created instance of AppUi.
+	 */
+	CEikAppUi* CreateAppUiL();
+
+private:
+	// Constructors
+
+	/**
+	 * ConstructL
+	 * 2nd phase constructor.
+	 */
+	void ConstructL();
+
+	/**
+	 * Ct_oomdummyappDocument.
+	 * C++ default constructor.
+	 * @param aApp Application creating this document.
+	 */
+	Ct_oomdummyappDocument(CEikApplication& aApp);
+
+	};
+
+#endif // __T_OOMDUMMYAPPDOCUMENT_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappmsgs.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,8 @@
+#ifndef T_OOMDUMMAPPMSGS_H_
+#define T_OOMDUMMAPPMSGS_H_
+
+const TInt KOomDummyAppSetBusy = 5;
+const TInt KOomDummyAppSetNormalPriority = 6;
+const TInt KOomDummyAppSetHighPriority = 7;
+
+#endif /*T_OOMDUMMAPPMSGS_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/sis/backup_registration.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+  <system_backup/>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/sis/t_oomdummyapp_S60_3_X_v_1_0_0.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+; Installation file for t_oomdummyapp application
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"t_oomdummyapp"},(0xE6CFBA00),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\t_oomdummyapp_0xE6CFBA00.exe"		-"!:\sys\bin\t_oomdummyapp_0xE6CFBA00.exe"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"		-"!:\resource\apps\t_oomdummyapp_0xE6CFBA00.rsc"
+"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"	-"!:\private\10003a3f\import\apps\t_oomdummyapp_0xE6CFBA00_reg.rsc"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\t_oomdummyapp_0xE6CFBA00.mif" -"!:\resource\apps\t_oomdummyapp_0xE6CFBA00.mif"
+"..\help\t_oomdummyapp_0xE6CFBA00.hlp"							 -"!:\resource\help\t_oomdummyapp_0xE6CFBA00.hlp"
+
+; Add any installation notes if applicable
+;"t_oomdummyapp.txt"		-"!:\private\E6CFBA00\t_oomdummyapp.txt"
+
+;required for application to be covered by backup/restore facility 
+"..\sis\backup_registration.xml"		-"!:\private\E6CFBA00\backup_registration.xml"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/CMsgHandler.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include "CMsgHandler.h"
+
+CMsgHandler::CMsgHandler(Ct_oomdummyappAppUi& aOwner) :
+	CActive(EPriorityStandard), // Standard priority
+	iOwner(aOwner)
+	{
+	}
+
+CMsgHandler* CMsgHandler::NewLC(Ct_oomdummyappAppUi& aOwner)
+	{
+	CMsgHandler* self = new (ELeave) CMsgHandler(aOwner);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+CMsgHandler* CMsgHandler::NewL(Ct_oomdummyappAppUi& aOwner)
+	{
+	CMsgHandler* self = CMsgHandler::NewLC(aOwner);
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+
+void CMsgHandler::ConstructL()
+	{
+	User::LeaveIfError(iMsgQueue.Open(15)); // Initialize message queue from process parameters
+	CActiveScheduler::Add(this); // Add to scheduler
+	StartL();
+	}
+
+CMsgHandler::~CMsgHandler()
+	{
+	Cancel(); // Cancel any request, if outstanding
+	iMsgQueue.Close(); // Destroy the RMsgQueue object
+	// Delete instance variables if any
+	}
+
+void CMsgHandler::DoCancel()
+	{
+	iMsgQueue.CancelDataAvailable();
+	}
+
+void CMsgHandler::StartL()
+	{
+	Cancel(); // Cancel any request, just to be sure
+	iMsgQueue.NotifyDataAvailable(iStatus);
+	SetActive(); // Tell scheduler a request is active
+	}
+
+void CMsgHandler::RunL()
+	{
+	TInt command;
+	while(KErrNone==iMsgQueue.Receive(command))
+		{
+		iOwner.HandleHarnessCommandL(command);
+		}
+	StartL();
+	}
+
+TInt CMsgHandler::RunError(TInt aError)
+	{
+	return aError;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyapp.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <eikstart.h>
+#include "t_oomdummyappApplication.h"
+
+_LIT(KFakeUidParam,"uid=");
+_LIT(KAllocParam,"alloc=");
+LOCAL_C CApaApplication* NewApplication()
+	{
+	TUid uid(KUidt_oomdummyappApp);
+	TUint alloc = 0;
+	//override uid from command line (add "uid=6789ABCD" anywhere)
+	TInt cmdsize = User::CommandLineLength();
+	HBufC *cmdbuf = NULL;
+	if(cmdsize > 0) cmdbuf = HBufC::New(cmdsize);
+	if(cmdbuf)
+		{
+		TPtr cmdline(cmdbuf->Des());
+		User::CommandLine(cmdline);
+		TLex lex(*cmdbuf);
+		while(!lex.Eos())
+			{
+			lex.SkipSpaceAndMark();
+			while(!lex.Eos() && lex.Get() != '=')
+				{
+				}
+			if(lex.MarkedToken().CompareF(KFakeUidParam) == 0)
+				{
+				lex.SkipSpaceAndMark();
+				while(!lex.Eos() && lex.Get().IsHexDigit())
+					{
+					}
+				TUint id;
+				TLex num(lex.MarkedToken());
+				if(KErrNone==num.Val(id,EHex))
+					{
+					RDebug::Printf("\tapp uid override %x", id);
+					uid = TUid::Uid(id);
+					}
+				}
+			else if(lex.MarkedToken().CompareF(KAllocParam) == 0)
+				{
+				lex.SkipSpaceAndMark();
+				while(!lex.Eos() && lex.Get().IsHexDigit())
+					{
+					}
+				TLex num(lex.MarkedToken());
+				if(KErrNone!=num.Val(alloc,EHex))
+					{
+					alloc = 0;
+					}
+				}
+			}
+		/*
+		TInt offset = cmdbuf->Find(KFakeUidParam);
+		if(offset >=0 && offset + 12 <= cmdbuf->Length())
+			{
+			TLex lex(cmdbuf->Mid(offset+4,8));
+			TUint id;
+			if(KErrNone==lex.Val(id,EHex))
+				{
+				RDebug::Printf("\tapp uid override %x", id);
+				uid = TUid::Uid(id);
+				}
+			}
+		TInt offset = cmdbuf->Find(KAllocParam);
+		if(offset >=0 && offset + 12 <= cmdbuf->Length())*/
+		delete cmdbuf;
+		}
+	return new Ct_oomdummyappApplication(uid, alloc);
+	}
+
+GLDEF_C TInt E32Main()
+	{
+	return EikStart::RunApplication(NewApplication);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappAppUi.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <avkon.hrh>
+#include <aknmessagequerydialog.h>
+#include <aknnotewrappers.h>
+#include <stringloader.h>
+#include <f32file.h>
+#include <s32file.h>
+#include <hlplch.h>
+
+#include <t_oomdummyapp_0xE6CFBA00.rsg>
+#include <oommonitorsession.h>
+
+//#include "t_oomdummyapp_0xE6CFBA00.hlp.hrh"
+#include "t_oomdummyapp.hrh"
+#include "t_oomdummyapp.pan"
+#include "t_oomdummyappApplication.h"
+#include "t_oomdummyappAppUi.h"
+#include "t_oomdummyappAppView.h"
+#include "CMsgHandler.h"
+#include "t_oomdummyappmsgs.h"
+
+_LIT( KFileName, "C:\\private\\E6CFBA00\\t_oomdummyapp.txt" );
+_LIT( KText, "OOM dummy app");
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppUi::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppUi::ConstructL()
+	{
+	// Initialise app UI with standard value.
+	BaseConstructL(CAknAppUi::EAknEnableSkin);
+
+	// Create view object
+	iAppView = Ct_oomdummyappAppView::NewL(ClientRect());
+
+	// Create a file to write the text to
+	TInt err = CCoeEnv::Static()->FsSession().MkDirAll(KFileName);
+	if ((KErrNone != err) && (KErrAlreadyExists != err))
+		{
+		return;
+		}
+
+	RFile file;
+	err = file.Replace(CCoeEnv::Static()->FsSession(), KFileName, EFileWrite);
+	CleanupClosePushL(file);
+	if (KErrNone != err)
+		{
+		CleanupStack::PopAndDestroy(1); // file
+		return;
+		}
+
+	RFileWriteStream outputFileStream(file);
+	CleanupClosePushL(outputFileStream);
+	outputFileStream << KText;
+
+	CleanupStack::PopAndDestroy(2); // outputFileStream, file
+
+	TRAP_IGNORE(iMsgHandler = CMsgHandler::NewL(*this)); //if not launched by test harness, the message queue won't exist
+	}
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppUi::Ct_oomdummyappAppUi()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppUi::Ct_oomdummyappAppUi()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppUi::~Ct_oomdummyappAppUi()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppUi::~Ct_oomdummyappAppUi()
+	{
+	if (iAppView)
+		{
+		delete iAppView;
+		iAppView = NULL;
+		}
+	delete iMsgHandler;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppUi::HandleCommandL()
+// Takes care of command handling.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppUi::HandleCommandL(TInt aCommand)
+	{
+	switch (aCommand)
+		{
+		case EEikCmdExit:
+		case EAknSoftkeyExit:
+			Exit();
+			break;
+
+		case ECommand1:
+			{
+
+			// Load a string from the resource file and display it
+			HBufC* textResource = StringLoader::LoadLC(R_COMMAND1_TEXT);
+			CAknInformationNote* informationNote;
+
+			informationNote = new (ELeave) CAknInformationNote;
+
+			// Show the information Note with
+			// textResource loaded with StringLoader.
+			informationNote->ExecuteLD(*textResource);
+
+			// Pop HBuf from CleanUpStack and Destroy it.
+			CleanupStack::PopAndDestroy(textResource);
+			}
+			break;
+		case ECommand2:
+			{
+			RFile rFile;
+
+			//Open file where the stream text is
+			User::LeaveIfError(rFile.Open(CCoeEnv::Static()->FsSession(),
+					KFileName, EFileStreamText));//EFileShareReadersOnly));// EFileStreamText));
+			CleanupClosePushL(rFile);
+
+			// copy stream from file to RFileStream object
+			RFileReadStream inputFileStream(rFile);
+			CleanupClosePushL(inputFileStream);
+
+			// HBufC descriptor is created from the RFileStream object.
+			HBufC* fileData = HBufC::NewLC(inputFileStream, 32);
+
+			CAknInformationNote* informationNote;
+
+			informationNote = new (ELeave) CAknInformationNote;
+			// Show the information Note
+			informationNote->ExecuteLD(*fileData);
+
+			// Pop loaded resources from the cleanup stack
+			CleanupStack::PopAndDestroy(3); // filedata, inputFileStream, rFile
+			}
+			break;
+		case EHelp:
+			{
+
+			CArrayFix<TCoeHelpContext>* buf = CCoeAppUi::AppHelpContextL();
+			HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), buf);
+			}
+			break;
+		case EAbout:
+			{
+
+			CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog();
+			dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);
+			HBufC* title = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TITLE);
+			dlg->QueryHeading()->SetTextL(*title);
+			CleanupStack::PopAndDestroy(); //title
+			HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
+			dlg->SetMessageTextL(*msg);
+			CleanupStack::PopAndDestroy(); //msg
+			dlg->RunLD();
+			}
+			break;
+		default:
+			Panic(Et_oomdummyappUi);
+			break;
+		}
+	}
+
+void Ct_oomdummyappAppUi::HandleHarnessCommandL(TInt aCommand)
+	{
+	switch(aCommand)
+		{
+		case 0:
+			Exit();
+			break;
+		case 1:
+			ActivateTopViewL();
+			break;
+		case KOomDummyAppSetBusy:
+			SetPriorityBusy();
+			break;
+		case KOomDummyAppSetNormalPriority:
+			SetPriorityNormal();
+			break;
+		case KOomDummyAppSetHighPriority:
+			SetPriorityHigh();
+			break;
+		}
+	}
+
+void Ct_oomdummyappAppUi::SetPriorityBusy()
+	{
+	ROomMonitorSession oomSession;
+	oomSession.Connect();
+	oomSession.SetOomPriority(ROomMonitorSession::EOomPriorityBusy);
+	oomSession.Close();
+	}
+
+void Ct_oomdummyappAppUi::SetPriorityNormal()
+	{
+	ROomMonitorSession oomSession;
+	oomSession.Connect();
+	oomSession.SetOomPriority(ROomMonitorSession::EOomPriorityNormal);
+	oomSession.Close();
+	}
+
+void Ct_oomdummyappAppUi::SetPriorityHigh()
+	{
+	ROomMonitorSession oomSession;
+	oomSession.Connect();
+	oomSession.SetOomPriority(ROomMonitorSession::EOomPriorityHigh);
+	oomSession.Close();
+	}
+
+
+// -----------------------------------------------------------------------------
+//  Called by the framework when the application status pane
+//  size is changed.  Passes the new client rectangle to the
+//  AppView
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppUi::HandleStatusPaneSizeChange()
+	{
+	iAppView->SetRect(ClientRect());
+	}
+
+CArrayFix<TCoeHelpContext>* Ct_oomdummyappAppUi::HelpContextL() const
+	{
+	// Note: Help will not work if the application uid3 is not in the
+	// protected range.  The default uid3 range for projects created
+	// from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
+	// can be self signed and installed on the device during testing.
+	// Once you get your official uid3 from Symbian Ltd. and find/replace
+	// all occurrences of uid3 in your project, the context help will
+	// work. Alternatively, a patch now exists for the versions of 
+	// HTML help compiler in SDKs and can be found here along with an FAQ:
+	// http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
+	CArrayFixFlat<TCoeHelpContext>* array = new (ELeave) CArrayFixFlat<
+			TCoeHelpContext> (1);
+	CleanupStack::PushL(array);
+	//array->AppendL(TCoeHelpContext(KUidt_oomdummyappApp, KGeneral_Information));
+	CleanupStack::Pop(array);
+	return array;
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappAppView.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include <coemain.h>
+#include "t_oomdummyappAppView.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppView* Ct_oomdummyappAppView::NewL(const TRect& aRect)
+	{
+	Ct_oomdummyappAppView* self = Ct_oomdummyappAppView::NewLC(aRect);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppView* Ct_oomdummyappAppView::NewLC(const TRect& aRect)
+	{
+	Ct_oomdummyappAppView* self = new (ELeave) Ct_oomdummyappAppView;
+	CleanupStack::PushL(self);
+	self->ConstructL(aRect);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppView::ConstructL(const TRect& aRect)
+	{
+	// Create a window for this application view
+	CreateWindowL();
+
+	// Set the windows size
+	SetRect(aRect);
+
+	// Activate the window, which makes it ready to be drawn
+	ActivateL();
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::Ct_oomdummyappAppView()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppView::Ct_oomdummyappAppView()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::~Ct_oomdummyappAppView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappAppView::~Ct_oomdummyappAppView()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::Draw()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppView::Draw(const TRect& /*aRect*/) const
+	{
+	// Get the standard graphics context
+	CWindowGc& gc = SystemGc();
+
+	// Gets the control's extent
+	TRect drawRect(Rect());
+
+	// Clears the screen
+	gc.Clear(drawRect);
+
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappAppView::SizeChanged()
+// Called by framework when the view size is changed.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappAppView::SizeChanged()
+	{
+	DrawNow();
+	}
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappApplication.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include "t_oomdummyapp.hrh"
+#include "t_oomdummyappDocument.h"
+#include "t_oomdummyappApplication.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+Ct_oomdummyappApplication::Ct_oomdummyappApplication(TUid aUid, TUint aAlloc) : iUID(aUid), iAlloc(aAlloc)
+	{
+	
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappApplication::CreateDocumentL()
+// Creates CApaDocument object
+// -----------------------------------------------------------------------------
+//
+CApaDocument* Ct_oomdummyappApplication::CreateDocumentL()
+	{
+	if(iAlloc > 0) iMemory = User::AllocL(iAlloc);
+	// Create an t_oomdummyapp document, and return a pointer to it
+	return Ct_oomdummyappDocument::NewL(*this);
+	}
+
+Ct_oomdummyappApplication::~Ct_oomdummyappApplication()
+	{
+	delete iMemory;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappApplication::AppDllUid()
+// Returns application UID
+// -----------------------------------------------------------------------------
+//
+TUid Ct_oomdummyappApplication::AppDllUid() const
+	{
+	// Return the UID for the t_oomdummyapp application
+	return iUID;
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappDocument.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include "t_oomdummyappAppUi.h"
+#include "t_oomdummyappDocument.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappDocument::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappDocument* Ct_oomdummyappDocument::NewL(CEikApplication& aApp)
+	{
+	Ct_oomdummyappDocument* self = NewLC(aApp);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappDocument::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappDocument* Ct_oomdummyappDocument::NewLC(CEikApplication& aApp)
+	{
+	Ct_oomdummyappDocument* self = new (ELeave) Ct_oomdummyappDocument(aApp);
+
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappDocument::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomdummyappDocument::ConstructL()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomdummyappDocument::Ct_oomdummyappDocument()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomdummyappDocument::Ct_oomdummyappDocument(CEikApplication& aApp) :
+	CAknDocument(aApp)
+	{
+	// No implementation required
+	}
+
+// ---------------------------------------------------------------------------
+// Ct_oomdummyappDocument::~Ct_oomdummyappDocument()
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+Ct_oomdummyappDocument::~Ct_oomdummyappDocument()
+	{
+	// No implementation required
+	}
+
+// ---------------------------------------------------------------------------
+// Ct_oomdummyappDocument::CreateAppUiL()
+// Constructs CreateAppUi.
+// ---------------------------------------------------------------------------
+//
+CEikAppUi* Ct_oomdummyappDocument::CreateAppUiL()
+	{
+	// Create the application user interface, and return a pointer to it;
+	// the framework takes ownership of this object
+	return new (ELeave) Ct_oomdummyappAppUi;
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/data/t_oomdummyplugin.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,102 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#include <ecom\registryinfo.rh>
+#include <oommonitorplugin.hrh>
+
+RESOURCE REGISTRY_INFO theInfo
+	{
+	dll_uid = 0x10286A33;
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = KOomPluginInterfaceUidValue;
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A34;
+					version_no = 1;
+					display_name = "dummy 1";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A35;
+					version_no = 1;
+					display_name = "dummy 2";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A36;
+					version_no = 1;
+					display_name = "dummy 3";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A37;
+					version_no = 1;
+					display_name = "dummy 4";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A38;
+					version_no = 1;
+					display_name = "dummy 5";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A39;
+					version_no = 1;
+					display_name = "dummy 6";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A3A;
+					version_no = 1;
+					display_name = "dummy 7";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A3B;
+					version_no = 1;
+					display_name = "dummy 8";
+					default_data = "";
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+t_oomdummyplugin.mmp
+
+PRJ_TESTEXPORTS
+../inc/t_oomdummyplugin_properties.h ../../inc/t_oomdummyplugin_properties.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/group/t_oomdummyplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET		  t_oomdummyplugin.dll
+TARGETTYPE	  PLUGIN
+// UID2 = 0x10009d8d for ECOM plugins.
+// UID3 = the 'DLL UID' (see resource file)
+UID			 0x10009d8d 0x10286A33
+CAPABILITY CAP_GENERAL_DLL
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+LIBRARY euser.lib
+LIBRARY t_oomclient.lib 
+LIBRARY        oommonitor.lib
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+
+SOURCEPATH ../data
+RESOURCE t_oomdummyplugin.rss
+
+SOURCEPATH ../src
+SOURCE ecom_entry.cpp
+SOURCE dummyplugin.cpp
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/inc/debug.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef DEBUG_H_
+#define DEBUG_H_
+
+#include <e32debug.h>
+
+#ifdef _DEBUG
+#define TRACE_FUNC RDebug::Printf("\t%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#define TRACE_FUNC_ENTRY RDebug::Printf("\t+%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#define TRACE_FUNC_EXIT RDebug::Printf("\t-%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#else
+#define TRACE_FUNC
+#define TRACE_FUNC_ENTRY 
+#define TRACE_FUNC_EXIT
+#endif
+
+#endif /* DEBUG_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/inc/dummyplugin.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef DUMMYPLUGIN_H_
+#define DUMMYPLUGIN_H_
+
+#include <oommonitorplugin.h>
+#include "t_oomclient.h"
+
+class CDummyOomPlugin : public COomMonitorPlugin
+	{
+public:
+	static CDummyOomPlugin* NewL(TInt aInstance);
+	~CDummyOomPlugin();
+private:
+	CDummyOomPlugin(TInt aInstance);
+	void ConstructL();
+	//from COomMonitorPlugin
+	virtual void FreeRam();
+	virtual void MemoryGood();
+
+private:
+	TInt iInstance;
+	TInt iLowMemoryCallCount;
+	TInt iGoodMemoryCallCount;
+	ROOMAllocSession iAllocServer;
+	};
+
+
+/*
+class CDummyOomPluginV2 : public COomMonitorPluginV2
+	{
+public:
+	static CDummyOomPluginV2* NewL(TInt aInstance);
+	~CDummyOomPluginV2();
+private:
+	CDummyOomPluginV2(TInt aInstance);
+	void ConstructL();
+	//from COomMonitorPlugin
+	virtual void FreeRam(TInt aBytesRequested);
+	virtual void MemoryGood();
+
+private:
+	TInt iInstance;
+	TInt iLowMemoryCallCount;
+	TInt iGoodMemoryCallCount;
+	ROOMAllocSession iAllocServer;
+	};
+*/
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/inc/t_oomdummyplugin_properties.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef DUMMYPLUGIN_PROPETIES_H_
+#define DUMMYPLUGIN_PROPETIES_H_
+
+const TUid KUidOomPropertyCategory = {0x10286A3E};
+
+//The key is the UID of the implementation instance, i.e. 10286A34 To 10286A3D
+const TInt KUidOOMDummyPluginFirstImplementation(0x10286A34);
+const TInt KUidOOMDummyPluginLastImplementation(0x10286A3D);
+
+const TUint KOOMDummyPluginImplementationCount = 10;
+
+const TUint KOOMDummyPluginLowMemoryCount = 0;
+const TUint KOOMDummyPluginGoodMemoryCount = 1 * KOOMDummyPluginImplementationCount;
+const TUint KOOMDummyPluginCurrentAllocationBytes = 2 * KOOMDummyPluginImplementationCount;
+const TUint KOOMDummyPluginBytesRequested = 3 * KOOMDummyPluginImplementationCount;
+
+#endif /* DUMMYPLUGIN_PROPETIES_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/src/dummyplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <e32property.h>
+#include <e32cmn.h>
+#include "dummyplugin.h"
+#include "debug.h"
+#include "t_oomdummyplugin_properties.h"
+
+CDummyOomPlugin* CDummyOomPlugin::NewL(TInt aInstance)
+	{
+	CDummyOomPlugin* self = new(ELeave)CDummyOomPlugin(aInstance);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CDummyOomPlugin::CDummyOomPlugin(TInt aInstance) :
+iInstance(aInstance)
+	{
+	
+	}
+
+void CDummyOomPlugin::ConstructL()
+	{
+	TRACE_FUNC_ENTRY;
+	//connect to alloc server
+	User::LeaveIfError(iAllocServer.Connect());
+	TRACE_FUNC_EXIT;
+	}
+
+CDummyOomPlugin::~CDummyOomPlugin()
+	{
+	TRACE_FUNC;
+	}
+
+void CDummyOomPlugin::FreeRam()
+	{
+	TRACE_FUNC;
+	iLowMemoryCallCount++;
+	RProperty::Set(KUidOomPropertyCategory, iInstance + KOOMDummyPluginLowMemoryCount, iLowMemoryCallCount);
+	iAllocServer.MemoryLow(TUid::Uid(iInstance));
+	}
+
+void CDummyOomPlugin::MemoryGood()
+	{
+	TRACE_FUNC;
+	iGoodMemoryCallCount++;
+	RProperty::Set(KUidOomPropertyCategory, iInstance + KOOMDummyPluginGoodMemoryCount, iGoodMemoryCallCount);
+	iAllocServer.MemoryGood(TUid::Uid(iInstance));
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin/src/ecom_entry.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <ecom\implementationproxy.h>
+#include "dummyplugin.h"
+
+#define DECLARE_CREATE_INSTANCE(UID) CDummyOomPlugin* CreateInstance##UID() { return CDummyOomPlugin::NewL(UID); }
+#define IMPLEMENTATION_INSTANCE(UID) IMPLEMENTATION_PROXY_ENTRY(UID, CreateInstance##UID)
+
+// #define DECLARE_CREATE_INSTANCEV2(UID) CDummyOomPluginV2* CreateInstance##UID() { return CDummyOomPluginV2::NewL(UID); }
+// #define IMPLEMENTATION_INSTANCEV2(UID) IMPLEMENTATION_PROXY_ENTRY(UID, CreateInstance##UID)
+
+//ECOM factory functions
+DECLARE_CREATE_INSTANCE(0x10286A34)
+DECLARE_CREATE_INSTANCE(0x10286A35)
+DECLARE_CREATE_INSTANCE(0x10286A36)
+DECLARE_CREATE_INSTANCE(0x10286A37)
+DECLARE_CREATE_INSTANCE(0x10286A38)
+DECLARE_CREATE_INSTANCE(0x10286A39)
+DECLARE_CREATE_INSTANCE(0x10286A3A)
+DECLARE_CREATE_INSTANCE(0x10286A3B)
+// DECLARE_CREATE_INSTANCEV2(0x10286A3C)
+// DECLARE_CREATE_INSTANCEV2(0x10286A3D)
+
+// Define the private interface UIDs
+const TImplementationProxy ImplementationTable[] =
+	{
+	IMPLEMENTATION_INSTANCE(0x10286A34),
+	IMPLEMENTATION_INSTANCE(0x10286A35),
+	IMPLEMENTATION_INSTANCE(0x10286A36),
+	IMPLEMENTATION_INSTANCE(0x10286A37),
+	IMPLEMENTATION_INSTANCE(0x10286A38),
+	IMPLEMENTATION_INSTANCE(0x10286A39),
+	IMPLEMENTATION_INSTANCE(0x10286A3A),
+	IMPLEMENTATION_INSTANCE(0x10286A3B)// ,
+	// IMPLEMENTATION_INSTANCEV2(0x10286A3C),
+	// IMPLEMENTATION_INSTANCEV2(0x10286A3D)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	return ImplementationTable;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/data/t_oomdummyplugin2.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+
+#include <ecom\registryinfo.rh>
+#include <oommonitorplugin.hrh>
+
+RESOURCE REGISTRY_INFO theInfo
+	{
+	dll_uid = 0x10286A81;
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = KOomPluginInterfaceV2UidValue;
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A3C;
+					version_no = 1;
+					display_name = "dummyv2 1";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10286A3D;
+					version_no = 1;
+					display_name = "dummyv2 2";
+					default_data = "";
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+t_oomdummyplugin2.mmp
+
+PRJ_TESTEXPORTS
+../inc/t_oomdummyplugin_properties2.h ../../inc/t_oomdummyplugin_properties2.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/group/t_oomdummyplugin2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET		  t_oomdummyplugin2.dll
+TARGETTYPE	  PLUGIN
+// UID2 = 0x10009d8d for ECOM plugins.
+// UID3 = the 'DLL UID' (see resource file)
+UID			 0x10009d8d 0x10286A81
+CAPABILITY CAP_GENERAL_DLL
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+LIBRARY euser.lib
+LIBRARY t_oomclient.lib
+LIBRARY        oommonitor.lib
+
+SOURCEPATH ../data
+RESOURCE t_oomdummyplugin2.rss
+
+SOURCEPATH ../src
+SOURCE ecom_entry2.cpp
+SOURCE dummyplugin2.cpp
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/inc/debug.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef DEBUG_H_
+#define DEBUG_H_
+
+#include <e32debug.h>
+
+#ifdef _DEBUG
+#define TRACE_FUNC RDebug::Printf("\t%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#define TRACE_FUNC_ENTRY RDebug::Printf("\t+%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#define TRACE_FUNC_EXIT RDebug::Printf("\t-%s[%x]", __PRETTY_FUNCTION__, iInstance);
+#else
+#define TRACE_FUNC
+#define TRACE_FUNC_ENTRY 
+#define TRACE_FUNC_EXIT
+#endif
+
+#endif /* DEBUG_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/inc/dummyplugin2.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef DUMMYPLUGIN2_H_
+#define DUMMYPLUGIN2_H_
+
+#include <oommonitorplugin.h>
+#include "t_oomclient.h"
+
+
+
+class CDummyOomPluginV2 : public COomMonitorPluginV2
+	{
+public:
+	static CDummyOomPluginV2* NewL(TInt aInstance);
+	~CDummyOomPluginV2();
+private:
+	CDummyOomPluginV2(TInt aInstance);
+	void ConstructL();
+	//from COomMonitorPlugin
+	virtual void FreeRam(TInt aBytesRequested);
+	virtual void MemoryGood();
+
+private:
+	TInt iInstance;
+	TInt iLowMemoryCallCount;
+	TInt iGoodMemoryCallCount;
+	ROOMAllocSession iAllocServer;
+	};
+
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/inc/t_oomdummyplugin_properties2.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/src/dummyplugin2.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <e32property.h>
+#include <e32cmn.h>
+#include "dummyplugin2.h"
+#include "debug.h"
+#include "t_oomdummyplugin_properties.h"
+
+
+CDummyOomPluginV2* CDummyOomPluginV2::NewL(TInt aInstance)
+	{
+	CDummyOomPluginV2* self = new(ELeave)CDummyOomPluginV2(aInstance);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CDummyOomPluginV2::CDummyOomPluginV2(TInt aInstance) :
+iInstance(aInstance)
+	{
+	
+	}
+
+void CDummyOomPluginV2::ConstructL()
+	{
+	TRACE_FUNC_ENTRY;
+	//connect to alloc server
+	User::LeaveIfError(iAllocServer.Connect());
+	TRACE_FUNC_EXIT;
+	}
+
+CDummyOomPluginV2::~CDummyOomPluginV2()
+	{
+	TRACE_FUNC;
+	}
+
+void CDummyOomPluginV2::FreeRam(TInt aBytesRequested)
+	{
+	TRACE_FUNC;
+	iLowMemoryCallCount++;
+	RProperty::Set(KUidOomPropertyCategory, iInstance + KOOMDummyPluginLowMemoryCount, iLowMemoryCallCount);
+	TInt err = RProperty::Set(KUidOomPropertyCategory, iInstance + KOOMDummyPluginBytesRequested, aBytesRequested);
+	iAllocServer.MemoryLow(TUid::Uid(iInstance));
+	}
+
+void CDummyOomPluginV2::MemoryGood()
+	{
+	TRACE_FUNC;
+	iGoodMemoryCallCount++;
+	RProperty::Set(KUidOomPropertyCategory, iInstance + KOOMDummyPluginGoodMemoryCount, iGoodMemoryCallCount);
+	iAllocServer.MemoryGood(TUid::Uid(iInstance));
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyplugin2/src/ecom_entry2.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <ecom\implementationproxy.h>
+#include "dummyplugin2.h"
+
+#define DECLARE_CREATE_INSTANCEV2(UID) CDummyOomPluginV2* CreateInstance##UID() { return CDummyOomPluginV2::NewL(UID); }
+#define IMPLEMENTATION_INSTANCEV2(UID) IMPLEMENTATION_PROXY_ENTRY(UID, CreateInstance##UID)
+
+//ECOM factory functions
+DECLARE_CREATE_INSTANCEV2(0x10286A3C)
+DECLARE_CREATE_INSTANCEV2(0x10286A3D)
+
+// Define the private interface UIDs
+const TImplementationProxy ImplementationTable[] =
+	{
+	IMPLEMENTATION_INSTANCEV2(0x10286A3C),
+	IMPLEMENTATION_INSTANCEV2(0x10286A3D)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	return ImplementationTable;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+t_oomharness.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/group/t_oomharness.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET		  t_oomharness.exe
+TARGETTYPE	  exe
+UID			 0 0xEF1971CE
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+SOURCEPATH	  ../src
+SOURCE		  t_oomharness.cpp
+SOURCE        CDummyApplicationHandle.cpp
+
+LIBRARY		 euser.lib
+LIBRARY		 t_oomclient.lib
+LIBRARY      hal.lib
+LIBRARY        oommonitor.lib
+
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE
+#endif
+
+EPOCHEAPSIZE 0x4000 0x4000000
+CAPABILITY WriteDeviceData
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/inc/CDummyApplicationHandle.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef CDUMMYAPPLICATIONHANDLE_H
+#define CDUMMYAPPLICATIONHANDLE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <e32msgqueue.h> 
+
+// a few uids...use appuidlister to extract from the app_reg.rsc files
+const TUid KUidAbout = {0x10005a22};
+const TUid KUidBLID = {0x101f85a0};
+const TUid KUidBrowserNG = {0x10008d39};
+const TUid KUidCalendar = {0x10005901};
+const TUid KUidClock = {0x10005903};
+const TUid KUidGallery = {0x101f8599};
+const TUid KUidPhonebook2 = {0x101f4cce};
+const TUid KUidProfileApp = {0x100058f8};
+
+// CLASS DECLARATION
+
+/**
+ *  CCDummyApplicationHandle
+ * A helper class for launching dummy apps and checking their status
+ */
+class CCDummyApplicationHandle : public CBase
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * Destructor.
+	 */
+	~CCDummyApplicationHandle();
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CCDummyApplicationHandle* NewL(TUid aUid, TInt aExtraMemoryAllocation = 0);
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CCDummyApplicationHandle* NewLC(TUid aUid, TInt aExtraMemoryAllocation = 0);
+
+	inline RProcess& Process() { return iProcess; }
+	inline const TUid& Uid() { return iUid; }
+	
+	void SendMessage(TInt aMessage);
+	
+	void BringToForeground();
+	
+	static TBool CompareTo(const TUid* aKey, const CCDummyApplicationHandle& aValue);
+private:
+
+	/**
+	 * Constructor for performing 1st stage construction
+	 */
+	CCDummyApplicationHandle(TUid aUid);
+
+	/**
+	 * EPOC default constructor for performing 2nd stage construction
+	 */
+	void ConstructL(TInt aExtraMemoryAllocation = 0);
+
+	RProcess iProcess;
+	//a channel for sending control messages to the dummy app...
+	RMsgQueue<TInt> iMsgQueue;
+	TUid iUid;
+	};
+
+#endif // CDUMMYAPPLICATIONHANDLE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/inc/cleanuputils.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+ */
+
+template <class T>
+class CleanupResetAndDestroy
+	{
+public:
+	inline static void PushL(T& aRef);
+private:
+	static void ResetAndDestroy(TAny *aPtr);
+	};
+	
+template <class T>
+inline void CleanupResetAndDestroyPushL(T& aRef);
+
+
+#include "cleanuputils.inl"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/inc/cleanuputils.inl	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+template <class T>
+inline void CleanupResetAndDestroy<T>::PushL(T& aRef)
+	{
+	CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef));
+	}
+
+template <class T>
+void CleanupResetAndDestroy<T>::ResetAndDestroy(TAny *aPtr)
+	{
+	static_cast<T*>(aPtr)->ResetAndDestroy();
+	}
+
+template <class T>
+inline void CleanupResetAndDestroyPushL(T& aRef)
+	{
+	CleanupResetAndDestroy<T>::PushL(aRef);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/inc/t_oomharness.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,308 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef __T_OOMHARNESS_H__
+#define __T_OOMHARNESS_H__
+
+//  Include Files
+
+#include <e32base.h>
+#include <e32hashtab.h>
+#include <e32cmn.h>
+
+#include "CDummyApplicationHandle.h"
+#include "t_oomclient.h"
+#include <oommonitorsession.h>
+
+const TTimeIntervalMicroSeconds32 KSettlingTime = 500000;
+
+//  Function Prototypes
+
+GLDEF_C TInt E32Main();
+
+class COomTestHarness : public CBase
+	{
+public:
+	// Constructors and destructor
+	static COomTestHarness* NewLC();
+	
+	~COomTestHarness();
+	
+	void StartL();
+	
+private:
+
+// Test setup functions...
+	
+	// Close any dummy apps
+	// Free all memory being eaten by the server
+	// Update the call counts on the plugins (add them if they're not there already)
+	void ResetL();
+	
+	void EatMemoryL(TInt aKBytesToLeaveFree);
+	
+	// Set up the plugins and applications - this is the starting point for many test cases
+	// 5 applications are started with approx 1 MB used for each
+	// 1MB (approx) of memory is reserved for each one of the plugins
+	void CommonSetUpL();
+	
+	void StartApplicationL(TInt32 aUid, TInt aInitialAllocationInKBs);
+	
+// Results checking functions...
+	
+	// Returns KErrNone if we get the expected result
+	TInt AppIsRunning(TInt32 aUid, TBool aExpectedResult);
+	
+	// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+	// Returns KErrNone if we get the expected result
+	TInt PluginFreeRamCalledL(TInt32 aUid, TBool aExpectedResult);
+
+	// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+	// Returns KErrNone if we get the expected result
+	TInt PluginMemoryGoodCalledL(TInt32 aUid, TBool aExpectedResult);
+	
+// Utility functions
+	
+	// Wait a while for the system to settle down
+	inline void Settle();
+
+	TInt BringAppToForeground(TInt32 aUid);
+	
+	void EatMemoryUntilWeAreStuckUnderTheLowThresholdL();
+	
+// The tests...
+	
+	// Test normal application closure for a single app
+	// Start three applications
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	// The middle application should be configured to eat 5MB of memory
+	// A low memory event is triggered and the middle application only should be closed
+	TInt AppCloseTest1L();
+	
+	// Tests the idle time rule mechanism for app closure
+	// Start three applications
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	// After an idle period the highest priority app is configured to become the lowest priority
+	// The middle and highest application should be configured to eat 5MB of memory
+	// A low memory event is triggered and the middle application only should be closed
+	// Note that this test should be the same as AppCloseTest1L, with the exception of the idle period which causes different apps to be closed
+	TInt AppCloseIdleTimeTest1L();
+	
+	// Test system plugins and continue mode
+	// Simulate a low memory event
+	// Two system plugins should free enough memory, but four will be run because they work in "continue" mode
+	TInt PluginTest1L();
+	
+	// Test application plugins
+	// Start two target apps
+	// Simulate a low memory event
+	// The one of the application plugins should now be run, displacing one of the system plugins
+	// The target apps are of sufficiently high priority that they will not be closed
+	TInt PluginTest2L();
+	
+	// Test that the aBytesRequested is correctly passed to the FreeMemory function of V2 plugins
+	// Initialise P4 plugin to consume 5MB of memory
+	// No other plugins are configured to release memory
+	// Simulate a low memory event (go just below the low threshold)
+	// Check that the P4 plugin has been called
+	// Check that the P4 plugin has received a request for > 500K and less than <1500K
+	TInt PluginV2Test1L();
+	
+	// Test simple prioritisation of application plugins
+	// Start two target applications
+	// Configure all plugins to consume 0.5MB
+	// Simulate a low memory event
+	// Some of the low priority app plugins with those target applications should be called
+	// The highest priority app with that target application should not be called (the lower priority plugins should free enough memory)
+	TInt AppPluginTest1L();
+	
+	// Test simple prioritisation of application plugins
+	// Start two target applications
+	// Configure all plugins to consume 0.5MB
+	// The app plugin with the highest priority is configured to be assigned the lowest priority after an idle time
+	// Wait until the idle time rule applies
+	// Simulate a low memory event
+	// The plugin that initially had the highest priority (but now has the lowest priority) should be called
+	// Note that this test should be the same as AppPluginTest1L with the addition of the idle period
+	TInt AppPluginIdleTimeTest1L();	
+	
+	// Test idle time handling for plugins
+	// Start two target apps
+	// Simulate a low memory event
+	// The one of the application plugins should now be run, displacing one of the system plugins
+	// The target apps are of sufficiently high priority that they will not be closed
+	TInt PluginIdleTimeTest2L();
+	
+	// Test the optional allocation mechanism
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 12MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just below the good memory level
+	// Request an optional allocation of 10MB referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed freeing the required memory
+	TInt OptionalAllocationTest1L();
+	
+	
+	// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 5MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just above the good memory level
+	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed freeing the required minimum amount memory
+	// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+	TInt OptionalAllocationTest2L();
+	
+	// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 3MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just above the good memory level
+	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed but it won't free enough memory
+	// The optional allocation should fail with KErrNoMemory
+	TInt OptionalAllocationTest3L();
+	
+	
+	// Test the async optional allocation mechanism
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 12MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just below the good memory level
+	// Request an optional allocation of 10MB referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed freeing the required memory
+	TInt OptionalAllocationAsyncTest1L();
+	
+	
+	// Test the async optional allocation mechanism - minimum requested RAM behaviour - successful request
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 5MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just above the good memory level
+	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed freeing the required minimum amount memory
+	// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+	TInt OptionalAllocationAsyncTest2L();
+	
+	// Test the async optional allocation mechanism - minimum requested RAM behaviour - failed request
+	// Configure the plugins not to release any RAM when FreeRam is called
+	// Configure one priority 7 application to release 3MB when FreeRam is called
+	// Start this application (plus another one so it isn't in the foreground)
+	// Drop just above the good memory level
+	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+	// All of the plugins below P8 should be called
+	// The P7 application should be closed but it won't free enough memory
+	// The optional allocation should fail with KErrNoMemory
+	TInt OptionalAllocationAsyncTest3L();
+	
+	
+	// Test that force priority check applies (only) to selected priorities
+	// Setup three plugins (priorities 7, 8 & 9)to eat 5MB each
+	// The configuration file should force a check after priority 8
+	// Drop just under the low threshold
+	// Plugins P7 & P8 should be called (P8 is called even though the P7 plugin freed enough memory)
+	// Plugin P9 should not be called because enou
+	TInt ForcePriorityCheck1L();
+	
+	// Test the Busy API on the OOM server
+	// Start three applications
+	// Ensure that the lowest priority app is not in the foreground
+	// Call the busy API on the OOM monitor for the lowest priority app
+	// Simulate a low memory event by going just under the low threshold
+	// The busy application should not be closed
+	// The other (non-foreground) application should be closed
+	TInt BusyApplicationTest1L();
+
+	// Test the Normal-priority API on the OOM server
+	// Start three applications
+	// Ensure that the lowest priority app is not in the foreground
+	// Call the busy API on the OOM monitor for the lowest priority app
+	// Then call the not-busy API on the OOM monitor for the lowest priority app
+	// Simulate a low memory event by going just under the low threshold
+	// The lowest priority app should be closed (because it is no longer busy)
+	TInt NormalPriorityApplicationTest1L();
+	
+	// Test that sync mode configuration is working for system plugins
+	// Configure three system plugins to release 5MB of memory each.
+	// The plugins are configured as follows
+	// Plugin 1: Priority 7, sync mode continue
+	// Plugin 2: Priority 8, sync mode check
+	// Plugin 3: Priority 9, sync mode continue
+	// Drop just under the low threshold
+	// Plugins 1 & 2 should be called (even though plugin 1 alone has freed enough RAM)
+	// Plugin 3 won't be called because the check on the priority 8 plugin discovers that enough RAM has been freed
+	TInt PluginSyncModeTest1L();	
+	
+	
+	// Start three applications
+	// One is set to NEVER_CLOSE, one is low priority, one is a dummy app to ensure that the first two are not in the foreground
+	// Configure applications not to release any memory
+	// Go just significantly under the low memory threshold
+	// Wait for the system to recover, if we have moved above the low memory threshold then go significantly under it again. Repeat this step until we no longer go above low.
+	// Check that the low priority application is closed
+	// Check that the NEVER_CLOSE application is not closed (even though we're still below the low theshold)
+	TInt NeverCloseTest1L();
+	
+	TInt GetFreeMemory();
+	
+	// Utility function which calls the async version of optional RAM request and makes it behave like the sync version
+	TInt RequestOptionalRamASyncWrapper(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable);
+	
+private:
+	COomTestHarness();
+	
+	void ConstructL();
+
+private:	
+	
+	struct TPluginCallCount
+		{
+		TInt iFreeRamCallCount;
+		TInt iMemoryGoodCallCount;
+		};
+	
+	RHashMap<TInt32, TPluginCallCount> iPluginCallCounts;
+	
+	RPointerArray<CCDummyApplicationHandle> iApps;
+	
+	ROOMAllocSession iAllocServer;
+	
+	RChunk iChunk;
+	TInt iChunkSize;
+	
+	ROomMonitorSession iOomSession;
+	};
+
+#endif  // __T_OOMHARNESS_H__
+
+inline void COomTestHarness::Settle()
+	{
+	//wait for oom system to settle
+	User::After(KSettlingTime);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/sis/t_oomharness_EKA2.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,24 @@
+; Installation file for Symbian OS 9.x for generic console application
+; Installation file for t_oomharness EXE
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+
+;
+; UID is the exe's UID
+;
+#{"t_oomharness EXE"},(0xEF1971CE),1,0,0
+
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\t_oomharness.exe"		  -"!:\sys\bin\t_oomharness.exe"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/src/CDummyApplicationHandle.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <w32std.h>
+#include "CDummyApplicationHandle.h"
+
+CCDummyApplicationHandle::CCDummyApplicationHandle(TUid aUid)
+: iUid(aUid)
+	{
+	// No implementation required
+	}
+
+CCDummyApplicationHandle::~CCDummyApplicationHandle()
+	{
+	if(iMsgQueue.Handle())
+		{
+		iMsgQueue.SendBlocking(0);
+		iMsgQueue.Close();
+		}
+	iProcess.Close();
+	}
+
+CCDummyApplicationHandle* CCDummyApplicationHandle::NewLC(TUid aUid, TInt aExtraMemoryAllocation)
+	{
+	CCDummyApplicationHandle* self = new (ELeave) CCDummyApplicationHandle(aUid);
+	CleanupStack::PushL(self);
+	self->ConstructL(aExtraMemoryAllocation);
+	return self;
+	}
+
+CCDummyApplicationHandle* CCDummyApplicationHandle::NewL(TUid aUid, TInt aExtraMemoryAllocation)
+	{
+	CCDummyApplicationHandle* self = CCDummyApplicationHandle::NewLC(aUid, aExtraMemoryAllocation);
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+
+void CCDummyApplicationHandle::ConstructL(TInt aExtraMemoryAllocation)
+	{
+	TBuf<28> params;
+	params.Format(_L("uid=%08x alloc=%x"), iUid, aExtraMemoryAllocation);
+	User::LeaveIfError(iProcess.Create(_L("z:\\sys\\bin\\t_oomdummyapp_0xE6CFBA00.exe"), params));
+	User::LeaveIfError(iMsgQueue.CreateGlobal(KNullDesC, 4));
+	User::LeaveIfError(iProcess.SetParameter(15, iMsgQueue));
+	iProcess.Resume();
+	}
+
+void CCDummyApplicationHandle::SendMessage(TInt aMessage)
+	{
+	iMsgQueue.SendBlocking(aMessage);
+	}
+
+TBool CCDummyApplicationHandle::CompareTo(const TUid* aKey, const CCDummyApplicationHandle& aValue)
+	{
+	return aValue.iUid == *aKey;
+	}
+
+void CCDummyApplicationHandle::BringToForeground()
+	{
+	SendMessage(1);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness/src/t_oomharness.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,1715 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+//  Include Files  
+
+#include "t_oomharness.h"
+#include "CDummyApplicationHandle.h"
+#include "cleanuputils.h"
+#include "t_oomdummyplugin_properties.h"
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>			// Console
+#include <e32hal.h>
+#include <e32property.h>
+#include <e32cmn.h>
+#include <hal.h>
+#include "t_oomdummyplugin_properties.h"
+#include "../../t_oomdummyapp/inc/t_oomdummyappmsgs.h"
+
+
+//  Constants
+
+_LIT(KTextConsoleTitle, "Console");
+_LIT(KTextFailed, " failed, leave code = %d");
+_LIT(KTextPressAnyKey, " [press any key]\n");
+
+const TInt KOomLowMemoryThreshold = 4096;
+const TInt KOomJustUnderLowMemoryThreshold = 4000;
+const TInt KOomSignificantlyUnderLowMemoryThreshold = 2024;
+const TInt KOomJustAboveGoodMemoryThreshold = 5100;
+const TInt KOomHarnessInitialEatenMemory = 1024; // Just eat 1K of memory initially, this can grow later
+
+const TInt KOomTestFirstIdlePeriod = 40000000; // 40 seconds
+
+const TInt KOomHarnessMaxEatenMemory = 64 * 1024 * 1024;
+
+//  Global Variables
+
+LOCAL_D CConsoleBase* console; // write all messages to this
+
+
+void COomTestHarness::StartL()
+	{
+	ResetL();
+
+	TInt err = KErrNone;
+	TBool testsFailed = EFalse;
+
+	err = AppCloseTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();
+	
+	err = AppCloseIdleTimeTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+	
+	err = PluginTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+
+	
+	err = PluginTest2L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();
+
+	err = AppPluginTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+	
+	err = AppPluginIdleTimeTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+	
+	err = OptionalAllocationTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();	
+	
+	err = OptionalAllocationTest2L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();	
+	
+	err = OptionalAllocationTest3L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();
+		
+	err = PluginV2Test1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+	
+	err = ForcePriorityCheck1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();
+
+	err = PluginSyncModeTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+
+	err = NeverCloseTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();
+	
+	err = OptionalAllocationAsyncTest1L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+
+	ResetL();	
+	
+	err = OptionalAllocationAsyncTest2L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();	
+	
+	err = OptionalAllocationAsyncTest3L();
+	if (err != KErrNone)
+		testsFailed = ETrue;
+	
+	ResetL();
+
+//	if (err == KErrNone)
+//		err = BusyApplicationTest1L();
+
+	ResetL();
+		
+//	if (err == KErrNone)
+//		err = NormalPriorityApplicationTest1L();
+	
+	if (!testsFailed)
+		console->Printf(_L("All tests passed\n"));
+	else
+		console->Printf(_L("Tests failed\n"));
+	}
+
+// Test normal application closure for a single app
+// Start three applications
+// The lowest priority app should be in the foregound
+// ... with the next lowest behind it
+// ... followed by the highest priority application at the back
+// The middle and highest priority application should be configured to eat 5MB of memory
+// A low memory event is triggered and the middle application only should be closed
+TInt COomTestHarness::AppCloseTest1L()
+	{
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	StartApplicationL(0x101f8599, 5 * 1024); // P9 app
+	StartApplicationL(0x10005901, 5 * 1024); // P8 app, configure it to eat 5MB
+	StartApplicationL(0x10005a22, 0); // P7 app
+	
+	BringAppToForeground(0x10005a22);
+	
+	Settle();
+	
+	// Go significantly under the low memory threshold
+	EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	TInt err = KErrNone;
+	
+	// The P8 application should be closed
+	err = AppIsRunning(0x10005901, EFalse);
+	
+	// The P7 app should still be running because it was in the foreground
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, ETrue);	
+	
+	// The P9 app should still be running because the P8 application freed enough memory
+	if (err == KErrNone)
+		err = AppIsRunning(0x101f8599, ETrue);	
+
+	if (err == KErrNone)
+		console->Printf(_L("App Close Test 1 passed\n"));
+	else
+		console->Printf(_L("App Close Test 1 failed\n"));	
+	
+	return err;
+	
+	}
+
+// Tests the idle time rule mechanism for app closure
+// Start three applications
+// The lowest priority app should be in the foregound
+// ... with the next lowest behind it
+// ... followed by the highest priority application at the back
+// After an idle period the highest priority app is configured to become the lowest priority
+// The middle and highest application should be configured to eat 5MB of memory
+// A low memory event is triggered and the middle application only should be closed
+// Note that this test should be the same as AppCloseTest1L, with the exception of the idle period which causes different apps to be closed
+TInt COomTestHarness::AppCloseIdleTimeTest1L()
+	{
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	StartApplicationL(0x101f8599, 5 * 1024); // P9 app (which becomes a P2 app after the idle time)
+	StartApplicationL(0x10005901, 5 * 1024); // P8 app, configure it to eat 5MB
+	StartApplicationL(0x10005a22, 0); // P7 app
+	
+	BringAppToForeground(0x10005a22);
+	
+	Settle();
+	
+	// Wait for the first set of idle time rules to apply
+	User::After(KOomTestFirstIdlePeriod);
+	
+	// Go significantly under the low memory threshold
+	EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first two system plugins should have been closed, releasing the required memory
+	// The following two system plugins won't be called (the app plugins will now take their place)
+	TInt err = KErrNone;
+	
+	// The P9 app should have become a P2 app after the idle period, therefore it should have been the first candidate for closure
+	if (err == KErrNone)
+		err = AppIsRunning(0x101f8599, EFalse);		
+	
+	// The P8 application should still be running because the P9 app (that has become a P2 app) has freed the required memory
+	err = AppIsRunning(0x10005901, ETrue);
+	
+	// The P7 app should still be running because it was in the foreground
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, ETrue);	
+	
+	if (err == KErrNone)
+		console->Printf(_L("App Close Idle Time Test 1 passed\n"));
+	else
+		console->Printf(_L("App Close Idle Time Test 1 failed\n"));	
+	
+	return err;
+	
+	}
+
+
+
+TInt COomTestHarness::PluginTest1L()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first four system plugins should have been run, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	err = PluginFreeRamCalledL(KUidOOMDummyPluginFirstImplementation, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(KUidOOMDummyPluginFirstImplementation + 1, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(KUidOOMDummyPluginFirstImplementation + 2, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3C, ETrue);
+	
+	
+	// Finally check that the plugins have been notified of the final good memory state
+	if (err == KErrNone)
+		err = PluginMemoryGoodCalledL(KUidOOMDummyPluginFirstImplementation, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginMemoryGoodCalledL(KUidOOMDummyPluginFirstImplementation + 1, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginMemoryGoodCalledL(KUidOOMDummyPluginFirstImplementation + 2, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginMemoryGoodCalledL(0x10286A3C, ETrue);
+
+	if (err == KErrNone)
+		console->Printf(_L("Plugin Test 1 passed\n"));
+	else
+		console->Printf(_L("Plugin Test 1 failed\n"));	
+	
+	return err;
+	}
+
+
+// Test application plugins
+// Start two target apps
+// Simulate a low memory event
+// The one of the application plugins should now be run, displacing one of the system plugins
+// The target apps are of sufficiently high priority that they will not be closed
+TInt COomTestHarness::PluginTest2L()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005901, 0);
+	StartApplicationL(0x10005a22, 0);
+	StartApplicationL(0x101f8599, 0);
+	
+	BringAppToForeground(0x101f8599);
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first two system plugins should have been closed, releasing the required memory
+	// The following two system plugins won't be called (the app plugins will now take their place)
+	TInt err = KErrNone;
+	
+	// The following plugins should be called...
+	// Application plugins: 10286A3A 10286A3B
+	// System plugins: 10286A3C(v2 plugin) 10286A34
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+
+	// Plugins and apps with higher priorities will not be called/closed because 0x10286A3A is configured to check memory before running anything else
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3C, EFalse);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, EFalse);
+
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, EFalse);	
+	
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, ETrue);		
+	
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005901, ETrue);
+		
+	if (err == KErrNone)
+		err = AppIsRunning(0x101f8599, ETrue);		
+	
+	
+	if (err == KErrNone)
+		console->Printf(_L("Plugin Test 2 passed\n"));
+	else
+		console->Printf(_L("Plugin Test 2 failed\n"));	
+	
+	return err;
+	
+	}
+
+
+
+// Test that the aBytesRequested is correctly passed to the FreeMemory function of V2 plugins
+// Initialise P4 plugin to consume 5MB of memory
+// No other plugins are configured to release memory
+// Simulate a low memory event (go just below the low threshold)
+// Check that the P4 plugin has been called
+// Check that the P4 plugin has received a request for > 500K and less than <1500K
+TInt COomTestHarness::PluginV2Test1L()
+	{
+	// Configure the P4 V2 plugin to eat 5MB:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3C), 0, 0x500000, 0x500000));
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first four system plugins should have been closed, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	// Check that the P4 plugin has been called
+	err = PluginFreeRamCalledL(0x10286A3C, ETrue);
+	
+	// Check that the request for memory was about right
+	// Note: regular system variation makes it impossible to test for an exact number
+	TInt requestedMemory = 0;
+	err = RProperty::Get(KUidOomPropertyCategory, 0x10286A3C + KOOMDummyPluginBytesRequested, requestedMemory);
+	if ((requestedMemory < 512 * 1024)
+			|| (requestedMemory > 1500 * 1024))
+		err = KErrGeneral;
+	
+	// Check that the higher priority V2 plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+	
+	if (err == KErrNone)
+		console->Printf(_L("Plugin V2 Test 1 passed\n"));
+	else
+		console->Printf(_L("Plugin V2 Test 1 failed\n"));	
+	
+	return err;
+	}
+
+
+// Test simple prioritisation of application plugins
+// Start two target applications
+// Configure all plugins to consume 0.5MB
+// Simulate a low memory event
+// Some of the low priority app plugins with those target applications should be called
+// The highest priority app with that target application should not be called (the lower priority plugins should free enough memory)
+TInt COomTestHarness::AppPluginTest1L()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005901, 0);
+	StartApplicationL(0x10005a22, 0);
+	StartApplicationL(0x101f8599, 0);
+	
+	TInt err = KErrNone;
+	
+	// Check that all of the apps are running
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005901, ETrue);
+
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, ETrue);
+
+	if (err == KErrNone)
+		err = AppIsRunning(0x101f8599, ETrue);
+
+	if (err == KErrNone)
+		console->Printf(_L("Apps started\n"));
+	else
+		console->Printf(_L("Apps not started\n"));
+	
+
+	
+	BringAppToForeground(0x101f8599);
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The following application plugins should be called...
+	// Application plugins: 10286A3A 10286A3B
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+
+	// The following plugin should not be called because other plugins (including some unchecked system plugins) have freed enough memory
+	// 10286A38
+
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A38, EFalse);	
+	
+	if (err == KErrNone)
+		console->Printf(_L("App Plugin Test 1 passed\n"));
+	else
+		console->Printf(_L("App Plugin Test 1 failed\n"));	
+	
+	return err;
+
+	}
+
+// Test simple prioritisation of application plugins
+// Start two target applications
+// Configure all plugins to consume 0.5MB
+// The app plugin with the highest priority is configured to be assigned the lowest priority after an idle time
+// Wait until the idle time rule applies
+// Simulate a low memory event
+// The plugin that initially had the highest priority (but now has the lowest priority) should be called
+// Note that this test should be the same as AppPluginTest1L with the addition of the idle period
+TInt COomTestHarness::AppPluginIdleTimeTest1L()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005901, 0);
+	StartApplicationL(0x10005a22, 0);
+	StartApplicationL(0x101f8599, 0);
+	
+	BringAppToForeground(0x101f8599);
+	
+	TInt err = KErrNone;	
+	
+	Settle();
+	
+	User::After(KOomTestFirstIdlePeriod);
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The following application plugins should be called...
+	// Application plugins: 10286A3A 10286A3B
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+
+	// The following plugin should also be called (its priority was initially too high but has been reduced after the idle time)
+	// 10286A38
+
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A38, ETrue);	
+	
+	if (err == KErrNone)
+		console->Printf(_L("Plugin Idle Time Test 1 passed\n"));
+	else
+		console->Printf(_L("Plugin Idle Time Test 1 failed\n"));	
+	
+	return err;
+
+	}
+
+
+// Test the optional allocation mechanism
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 12MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required memory
+TInt COomTestHarness::OptionalAllocationTest1L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 12MB of RAM
+	StartApplicationL(0x10005A22, 12 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	TInt bytesAvailable;
+	TInt err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 10 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation Test 1 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation Test 1 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 5MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required minimum amount memory
+// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+TInt COomTestHarness::OptionalAllocationTest2L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(0x10005A22, 5 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	// Say that 5MB is the minimum we need
+	TInt bytesAvailable;
+	TInt err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	if (err == KErrNone)
+		{
+		// Check that the reported bytes available is > 3MB and < 7MB
+		if ((bytesAvailable < 3 * 1024 * 1024)
+				|| (bytesAvailable > 7 * 1024 * 1024))
+			{
+			err = KErrGeneral;
+			}
+		}
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+	
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation Test 2 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation Test 2 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 3MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed but it won't free enough memory
+// The optional allocation should fail with KErrNoMemory
+TInt COomTestHarness::OptionalAllocationTest3L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(0x10005A22, 3 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	// Say that 5MB is the minimum we need
+	TInt bytesAvailable;
+	TInt err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	// We expect an error because it has not been possible to free the minimum memory
+	if (err == KErrNoMemory)
+		{
+		err = KErrNone;
+		}
+	else
+		{
+		err = KErrGeneral;
+		}
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+	
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation Test 3 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation Test 3 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+// Test that force priority check applies (only) to selected priorities
+// Setup three plugins (priorities 7, 8 & 9)to eat 5MB each
+// The configuration file should force a check after priority 8
+// Drop just under the low threshold
+// Plugins P7 & P8 should be called (P8 is called even though the P7 plugin freed enough memory)
+// Plugin P9 should not be called because enou
+TInt COomTestHarness::ForcePriorityCheck1L()
+	{
+	// Configure the P7, P8 and P9 plugins to eat 5MB each:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A36), 0, 0x500000, 0x500000)); // P7
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A37), 0, 0x500000, 0x500000)); // P8
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3D), 0, 0x500000, 0x500000)); // P9
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	TInt err = KErrNone;
+	
+	// The P7 plugin should have been called and is the first to release RAM
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// The P8 plugin should be called even though the P7 plugin has already released enough memory because the plugin runs in continue mode and there is no forced check
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, ETrue);
+
+	// The P9 plugin should not be called because of the force priority check (the P7 & P8 plugins have already released plenty of RAM)
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3D, EFalse);	
+	
+	if (err == KErrNone)
+		console->Printf(_L("Force Prioirty Check Test 1 passed\n"));
+	else
+		console->Printf(_L("Force Prioirty Check Test 1 failed\n"));	
+	
+	return err;
+	
+	}
+
+
+
+// Test the Busy API on the OOM server
+// Start three applications
+// Ensure that the lowest priority app is not in the foreground
+// Call the busy API on the OOM monitor for the lowest priority app
+// Simulate a low memory event by going just under the low threshold
+// The busy application should not be closed
+// The other (non-foreground) application should be closed
+TInt COomTestHarness::BusyApplicationTest1L()
+	{
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005901, 0);
+	StartApplicationL(0x101f8599, 0);
+	StartApplicationL(0x10005a22, 0); // Lowest priority app
+	
+	BringAppToForeground(0x101f8599); // TODO: this doesn't seem to be working - message not getting through to the dummy application
+	
+	Settle();
+	
+	// Send the second app a message to make itself busy
+	TInt id = iApps.Find<TUid>(TUid::Uid(0x10005a22), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->SendMessage(KOomDummyAppSetBusy);
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first four system plugins should have been closed, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	// Check that the busy application is still running
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, ETrue);
+
+	// Check that the higher priority but non-busy application has been close
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005901, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Busy Application Test 1 passed\n"));
+	else
+		console->Printf(_L("Busy Application Test 1 failed\n"));	
+	
+	return err;
+	}
+
+
+// Test the NotBusy API on the OOM server
+// Start three applications
+// Ensure that the lowest priority app is not in the foreground
+// Call the busy API on the OOM monitor for the lowest priority app
+// Then call the not-busy API on the OOM monitor for the lowest priority app
+// Simulate a low memory event by going just under the low threshold
+// The lowest priority app should be closed (because it is no longer busy)
+TInt COomTestHarness::NormalPriorityApplicationTest1L()
+	{
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005901, 0);
+	StartApplicationL(0x10005a22, 0); // Lowest priority app
+	StartApplicationL(0x101f8599, 0);
+	
+	BringAppToForeground(0x101f8599);
+	
+	Settle();
+	
+	// Send the second app a message to make itself busy
+	TInt id = iApps.Find<TUid>(TUid::Uid(0x10005a22), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	// TODO: temp removed - needs to be put back
+//	iApps[id]->SendMessage(KOomDummyAppSetBusy);
+	
+	// Send the second app a message to make itself normal priority
+	id = iApps.Find<TUid>(TUid::Uid(0x10005a22), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->SendMessage(KOomDummyAppSetNormalPriority);
+
+
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first four system plugins should have been closed, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	// Check that the no-longer-busy application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Normal Priority Application Test 1 passed\n"));
+	else
+		console->Printf(_L("Normal Priority  Application Test 2 failed\n"));	
+	
+	return err;
+	}
+
+
+
+// Start three applications
+// One is set to NEVER_CLOSE, one is low priority, one is a dummy app to ensure that the first two are not in the foreground
+// Configure applications not to release any memory
+// Go just significantly under the low memory threshold
+// Wait for the system to recover, if we have moved above the low memory threshold then go significantly under it again. Repeat this step until we no longer go above low.
+// Check that the low priority application is closed
+// Check that the NEVER_CLOSE application is not closed (even though we're still below the low theshold)
+TInt COomTestHarness::NeverCloseTest1L()
+	{
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(0x10005a22, 0); // Lowest priority app
+	StartApplicationL(0x10008d39, 0); // NEVER_CLOSE application
+	StartApplicationL(0x101f8599, 0);
+	
+	BringAppToForeground(0x101f8599);
+	
+	Settle();
+	
+	EatMemoryUntilWeAreStuckUnderTheLowThresholdL();
+	
+	Settle();
+	
+	// The first four system plugins should have been closed, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	// The NEVER_CLOSE app should still be running (even though we are still below the low threshold)
+	if (err == KErrNone)
+		err = AppIsRunning(0x10008d39, ETrue);
+
+	// The low priority app should still be closed (even though we are still below the low threshold)
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005a22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Never Close Test 1 passed\n"));
+	else
+		console->Printf(_L("Never Close Test 2 failed\n"));	
+	
+	return err;
+	}
+
+
+
+
+
+// Test that sync mode configuration is working for system plugins
+// Configure three system plugins to release 5MB of memory each.
+// The plugins are configured as follows
+// Plugin 1: Priority 7, sync mode continue
+// Plugin 2: Priority 8, sync mode check
+// Plugin 3: Priority 9, sync mode continue
+// Drop just under the low threshold
+// Plugins 1 & 2 should be called (even though plugin 1 alone has freed enough RAM)
+// Plugin 3 won't be called because the check on the priority 8 plugin discovers that enough RAM has been freed
+TInt COomTestHarness::PluginSyncModeTest1L()
+	{
+	// Configure three plugins to eat 5MB each:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A36), 0, 0x500000, 0x500000));
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A37), 0, 0x500000, 0x500000));
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3D), 0, 0x500000, 0x500000));
+	
+	Settle();
+	
+	// Go just under the low memory threshold
+	EatMemoryL(KOomJustUnderLowMemoryThreshold);
+	
+	Settle();
+	
+	// The first four system plugins should have been run, releasing the required memory
+	// All four plugins should be called, even though the first two will release enough memory (this is because
+	// plugins are always run in continue mode)
+	TInt err = KErrNone;
+	
+	// Check that the first two plugins have been called, but not the third
+	err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+	
+	if (err == KErrNone)
+		console->Printf(_L("Plugin Sync Mode Test 1 passed\n"));
+	else
+		console->Printf(_L("Plugin Sync Mode Test 1 failed\n"));	
+	
+	return err;
+	}
+
+
+
+
+// Test the optional allocation mechanism
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 12MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required memory
+TInt COomTestHarness::OptionalAllocationAsyncTest1L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 12MB of RAM
+	StartApplicationL(0x10005A22, 12 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	TInt bytesAvailable;
+	TInt err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 10 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+	
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation (Async) Test 1 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation (Async) Test 1 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 5MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required minimum amount memory
+// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+TInt COomTestHarness::OptionalAllocationAsyncTest2L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(0x10005A22, 5 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	// Say that 5MB is the minimum we need
+	TInt bytesAvailable;
+	TInt err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	if (err == KErrNone)
+		{
+		// Check that the reported bytes available is > 3MB and < 7MB
+		if ((bytesAvailable < 3 * 1024 * 1024)
+				|| (bytesAvailable > 7 * 1024 * 1024))
+			{
+			err = KErrGeneral;
+			}
+		}
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+	
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation (Async) Test 2 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation (Async) Test 2 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 3MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed but it won't free enough memory
+// The optional allocation should fail with KErrNoMemory
+TInt COomTestHarness::OptionalAllocationAsyncTest3L()
+	{
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(0x10005A22, 3 * 1024);
+	StartApplicationL(0x101F8599, 0);
+	
+	BringAppToForeground(0x101F8599);
+	
+	Settle();
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	
+	Settle();
+	
+	// Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+	// Say that 5MB is the minimum we need
+	TInt bytesAvailable;
+	TInt err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+	
+	// We expect an error because it has not been possible to free the minimum memory
+	if (err == KErrNoMemory)
+		{
+		err = KErrNone;
+		}
+	else
+		{
+		err = KErrGeneral;
+		}
+	
+	// Check that all system plugins below P8 have been called
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A34, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A35, ETrue);
+	
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A36, ETrue);
+	
+	// This the P8 system plugin has not been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A37, EFalse);
+	
+	// Check that the low priority app plugin has been called
+	if (err == KErrNone)
+		err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+	
+	// Check that the P7 application has been closed
+	if (err == KErrNone)
+		err = AppIsRunning(0x10005A22, EFalse);
+
+	if (err == KErrNone)
+		console->Printf(_L("Optional Allocation (Async) Test 3 passed\n"));
+	else
+		console->Printf(_L("Optional Allocation (Async) Test 3 failed\n"));	
+		
+	
+	return err;
+	}
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+
+TInt COomTestHarness::BringAppToForeground(TInt32 aUid)
+	{
+	//bring app to foreground
+	TInt id = iApps.Find<TUid>(TUid::Uid(aUid), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->BringToForeground();
+	User::After(KSettlingTime);
+	}
+
+
+COomTestHarness* COomTestHarness::NewLC()
+	{
+	COomTestHarness* self = new (ELeave) COomTestHarness();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+void COomTestHarness::ConstructL()
+	{
+	User::LeaveIfError(iAllocServer.Connect());
+	User::LeaveIfError(iOomSession.Connect());
+	
+	User::LeaveIfError(iChunk.CreateLocal(KOomHarnessInitialEatenMemory, KOomHarnessMaxEatenMemory));
+	iChunkSize = KOomHarnessInitialEatenMemory;
+	
+	ResetL();
+	}
+
+
+COomTestHarness::~COomTestHarness()
+	{
+	iApps.ResetAndDestroy();
+	iAllocServer.Close();
+	iChunk.Close();
+	iPluginCallCounts.Close();
+	}
+
+	
+void COomTestHarness::ResetL()
+	{
+	Settle();
+	
+	// Close any dummy apps
+	iApps.ResetAndDestroy();
+	
+	Settle();
+
+	// Free all memory being eaten by the server
+	iChunk.Adjust(KOomHarnessInitialEatenMemory); // Just eat 1K of memory initially, this can grow later
+	iChunkSize = KOomHarnessInitialEatenMemory;
+	
+	User::LeaveIfError(iAllocServer.Reset());
+	
+	// Wait for the system to settle before getting the call counts (freeing the memory could cause some more movement).
+	Settle();
+	
+	// Update the call counts on the plugins (add them if they're not there already)
+	for (TInt pluginUid = KUidOOMDummyPluginFirstImplementation; pluginUid <= KUidOOMDummyPluginLastImplementation; pluginUid++)
+		{
+		TInt lowMemoryCount = 0;
+		RProperty::Get(KUidOomPropertyCategory, pluginUid + KOOMDummyPluginLowMemoryCount, lowMemoryCount);
+
+		TInt goodMemoryCallCount = 0;
+		RProperty::Get(KUidOomPropertyCategory, pluginUid + KOOMDummyPluginGoodMemoryCount, goodMemoryCallCount);
+		
+		TPluginCallCount pluginCallCount;
+		pluginCallCount.iFreeRamCallCount = lowMemoryCount;
+		pluginCallCount.iMemoryGoodCallCount = goodMemoryCallCount;
+		
+		iPluginCallCounts.InsertL(pluginUid, pluginCallCount);
+		};
+	}
+
+void COomTestHarness::EatMemoryL(TInt aKBytesToLeaveFree)
+	{
+	Settle();
+	
+    TMemoryInfoV1Buf meminfo;
+    UserHal::MemoryInfo(meminfo);
+    TInt freeMem = meminfo().iFreeRamInBytes;
+
+    // Resize the dummy chunk to consume the correct ammount of memory
+	iChunkSize = freeMem + iChunkSize - (aKBytesToLeaveFree * 1024);
+	TInt err = iChunk.Adjust(iChunkSize);
+	User::LeaveIfError(err);
+	}
+
+// Set up the plugins and applications - this is the starting point for many test cases
+// 5 applications are started with approx 0.5 MB used for each
+// 0.5MB (approx) of memory is reserved for each one of the plugins
+void COomTestHarness::CommonSetUpL()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	}
+	
+void COomTestHarness::StartApplicationL(TInt32 aUid, TInt aInitialAllocationInKBs)
+	{
+	User::ResetInactivityTime();
+	CCDummyApplicationHandle *app = CCDummyApplicationHandle::NewLC(TUid::Uid(aUid), aInitialAllocationInKBs * 1024);
+	iApps.AppendL(app);
+	CleanupStack::Pop(app);
+	Settle();
+	}
+
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::AppIsRunning(TInt32 aUid, TBool aExpectedResult)
+	{
+	TBool appRunning = ETrue;
+	
+	TInt id = iApps.Find<TUid>(TUid::Uid(aUid), CCDummyApplicationHandle::CompareTo);
+	if (id < 0)
+		appRunning = EFalse;
+	else if(iApps[id]->Process().ExitType() != EExitPending)
+		appRunning = EFalse;
+	
+	TInt err = KErrNone;
+	
+	if (aExpectedResult != appRunning)
+		err = KErrGeneral;
+	
+	if (aExpectedResult != appRunning)
+		{
+		console->Printf(_L("Application running state not as expected %x \n"), aUid);
+		err = KErrGeneral;
+		}	
+	
+	return err;
+	}
+
+
+// Utility function which calls the async version of optional RAM request and makes it behave like the sync version
+TInt COomTestHarness::RequestOptionalRamASyncWrapper(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable)
+	{
+	TInt err = KErrNone;
+	TRequestStatus status;
+	iOomSession.RequestOptionalRam(aBytesRequested, aMinimumBytesNeeded, aPluginId, status);
+	User::WaitForRequest(status);
+	
+	if (status.Int() < 0)
+		err = status.Int();
+	else
+		aBytesAvailable = status.Int();
+	
+	return err;
+	}
+
+
+TInt COomTestHarness::GetFreeMemory()
+	{
+	User::CompressAllHeaps();
+	
+	TInt current = 0;
+	HAL::Get( HALData::EMemoryRAMFree, current );
+	
+	return current;
+	}
+
+// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::PluginFreeRamCalledL(TInt32 aUid, TBool aExpectedResult)
+	{
+	TInt newLowMemoryCount = 0;
+	TInt err = RProperty::Get(KUidOomPropertyCategory, aUid + KOOMDummyPluginLowMemoryCount, newLowMemoryCount);
+
+	if (err != KErrNone)
+		console->Printf(_L("Unable to get plugin FreeRam count\n"));
+	
+	TBool freeRamHasBeenCalledOnPlugin = EFalse;
+	TPluginCallCount* pluginCallCount = iPluginCallCounts.Find(aUid);
+	
+	if (pluginCallCount)
+		{
+		freeRamHasBeenCalledOnPlugin = (pluginCallCount->iFreeRamCallCount != newLowMemoryCount);
+		
+		if (freeRamHasBeenCalledOnPlugin)
+			{
+			// Update the list of old counts with the current value so we can see if it has changed next time this function is called
+			pluginCallCount->iFreeRamCallCount = newLowMemoryCount;
+			iPluginCallCounts.InsertL(aUid, *pluginCallCount);
+			}
+		}
+	else
+		{
+		console->Printf(_L("Unable to find call count.\n"));
+		err = KErrNotFound;
+		}
+		
+	if (aExpectedResult != freeRamHasBeenCalledOnPlugin)
+		{
+		console->Printf(_L("Plugin FreeRam count not as expected %x \n"), aUid);
+		err = KErrGeneral;
+		}
+	
+	return err;
+	}
+
+// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::PluginMemoryGoodCalledL(TInt32 aUid, TBool aExpectedResult)
+	{
+	TInt newGoodMemoryCount = 0;
+	RProperty::Get(KUidOomPropertyCategory, aUid + KOOMDummyPluginGoodMemoryCount, newGoodMemoryCount);
+
+	TBool memoryGoodHasBeenCalledOnPlugin = EFalse;
+	TPluginCallCount* pluginCallCount = iPluginCallCounts.Find(aUid);
+	
+	if (pluginCallCount)
+		{
+		memoryGoodHasBeenCalledOnPlugin = (pluginCallCount->iMemoryGoodCallCount != newGoodMemoryCount);
+		
+		if (memoryGoodHasBeenCalledOnPlugin)
+			{
+			// Update the list of old counts with the current value so we can see if it has changed next time this function is called
+			pluginCallCount->iMemoryGoodCallCount = newGoodMemoryCount;
+			iPluginCallCounts.InsertL(aUid, *pluginCallCount);
+			}
+		}
+	
+	TInt err = KErrNone;
+	
+	if (aExpectedResult != memoryGoodHasBeenCalledOnPlugin)
+		err = KErrGeneral;
+	
+	return err;
+	}
+
+void COomTestHarness::EatMemoryUntilWeAreStuckUnderTheLowThresholdL()
+	{
+	while (ETrue)
+		{
+		// Go significantly under the low memory threshold
+		EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+		Settle();
+		// If we are still under the memory threshold then the OOM monitor has not been able to recover,
+		// so our job here is done...
+		if (GetFreeMemory() < (KOomLowMemoryThreshold * 1024))
+			break;
+		
+		// If memory has been released to take us above the low memory threshold then go again...
+		}	
+	}
+
+
+COomTestHarness::COomTestHarness()
+	{
+	// TODO
+	}
+
+
+//  Local Functions
+LOCAL_C void MainL()
+	{
+	COomTestHarness* testHarness = COomTestHarness::NewLC();
+	
+	testHarness->StartL();
+	
+	CleanupStack::PopAndDestroy(testHarness);
+	}
+
+//  Local Functions
+LOCAL_C void OldMainL()
+	{
+	//
+	// add your program code here, example code below
+	//
+	const TInt implementations(KUidOOMDummyPluginLastImplementation-KUidOOMDummyPluginFirstImplementation+1);
+	TInt initialLowCount[implementations];
+	TInt initialGoodCount[implementations];
+	TInt finalLowCount[implementations];
+	TInt finalGoodCount[implementations];
+	TInt tmp;
+	TBuf<80> line;
+	TBool pass = ETrue;
+	ROOMAllocSession allocServer;
+    TMemoryInfoV1Buf meminfo;
+	//connect to alloc server
+	User::LeaveIfError(allocServer.Connect());
+	CleanupClosePushL(allocServer);
+	//configure alloc server
+	User::LeaveIfError(allocServer.Reset());
+/*	User::LeaveIfError(allocServer.Configure(TUid::Uid(KUidOOMDummyPluginFirstImplementation), 0x100000, 0x1000, 0x400000));
+	User::LeaveIfError(allocServer.Configure(TUid::Uid(KUidOOMDummyPluginFirstImplementation+3), 0x100000, 0x1000, 0x400000));
+	User::LeaveIfError(allocServer.StartAllocating());
+	for(TInt i=0;i<5;i++)
+		{
+	    UserHal::MemoryInfo(meminfo);
+	    console->Printf(_L("free mem %d"), meminfo().iFreeRamInBytes);
+	    User::After(1000000);
+		}*/
+	//create dummy apps (note app with that UID *must* exist or apparc won't allow contruction due to missing app_reg.rsc)
+	RPointerArray<CCDummyApplicationHandle> apps;
+	CleanupResetAndDestroyPushL(apps);
+	CCDummyApplicationHandle *app = CCDummyApplicationHandle::NewLC(KUidCalendar, 0x100000);
+	apps.AppendL(app);
+	CleanupStack::Pop(app);
+	app = CCDummyApplicationHandle::NewLC(KUidClock, 0x100000);
+	apps.AppendL(app);
+	CleanupStack::Pop(app);
+	app = CCDummyApplicationHandle::NewLC(KUidAbout, 0x100000);
+	apps.AppendL(app);
+	CleanupStack::Pop(app);
+	
+	//wait for oom system to settle
+	User::After(KSettlingTime);
+	
+	//verify apps started OK
+	for(TInt i=0;i<apps.Count();i++)
+		{
+		if(apps[i]->Process().ExitType() != EExitPending)
+			{
+			pass = EFalse;
+			console->Printf(_L("app %x not running (status %d)\n"),apps[i]->Uid().iUid,apps[i]->Process().ExitType());
+			}
+		}
+	
+	//bring calendar to foreground
+	TInt id = apps.Find<TUid>(KUidCalendar, CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	apps[id]->BringToForeground();
+	User::After(KSettlingTime);
+	
+	//eat memory to invoke low memory handler
+    UserHal::MemoryInfo(meminfo);
+    TInt freeMem = meminfo().iFreeRamInBytes;
+	TAny *ptr = User::Alloc(freeMem - 247 * 1024);
+	CleanupStack::PushL(ptr);
+	
+	//wait for oom system to settle
+	User::After(KSettlingTime);
+	
+	//verify some apps were closed
+	for(TInt i=0;i<apps.Count();i++)
+		{
+		if(apps[i]->Process().ExitType() != EExitPending)
+			{
+			console->Printf(_L("app %x not running (status %d)\n"),apps[i]->Uid().iUid,apps[i]->Process().ExitType());
+			}
+		else
+			{
+			console->Printf(_L("app %x still running\n"),apps[i]->Uid().iUid);
+			}
+		}
+	
+	//release memory to invoke good memory handler
+	CleanupStack::PopAndDestroy(ptr);
+	
+	//wait for oom system to settle
+	User::After(KSettlingTime);
+	
+/*	console->Write(_L("Initial Counts\n"));
+	for(TInt id=0;id<KOOMDummyPluginImplementationCount;id++)
+		{
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginLowMemoryCount, tmp));
+		initialLowCount[id] = tmp;
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginGoodMemoryCount, tmp));
+		initialGoodCount[id] = tmp;
+		line.Format(_L("%x %d %d\n"), KUidOOMDummyPluginFirstImplementation + id, initialLowCount[id], initialGoodCount[id]);
+		console->Write(line);
+		}
+	//check status of dummy apps
+	User::After(2000000);
+	line.Format(_L("app1 %d app2 %d\n"), app1.ExitType(), app2.ExitType());
+	console->Write(line);
+	if(app1.ExitType() != EExitPending || app2.ExitType() != EExitPending) pass = EFalse;
+	if(pass)
+		console->Write(_L("verdict: pass"));
+	else
+		console->Write(_L("verdict: fail"));
+	console->Getch();
+
+    UserHal::MemoryInfo(meminfo);
+    TInt freeMem = meminfo().iFreeRamInBytes;
+	TAny *ptr = User::Alloc(freeMem - 260000);
+	CleanupStack::PushL(ptr);
+	console->Write(_L("Counts after alloc\n"));
+	for(TInt id=0;id<KOOMDummyPluginImplementationCount;id++)
+		{
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginLowMemoryCount, tmp));
+		finalLowCount[id] = tmp;
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginGoodMemoryCount, tmp));
+		finalGoodCount[id] = tmp;
+		line.Format(_L("%x %d %d\n"), KUidOOMDummyPluginFirstImplementation + id, finalLowCount[id], finalGoodCount[id]);
+		console->Write(line);
+		if(finalLowCount[id] - initialLowCount[id] != 1) pass = EFalse;
+		}
+	//check status of dummy apps
+	User::After(2000000);
+	line.Format(_L("app1 %d app2 %d\n"), app1.ExitType(), app2.ExitType());
+	console->Write(line);
+	if(app1.ExitType() == EExitPending || app2.ExitType() == EExitPending) pass = EFalse;
+	if(pass)
+		console->Write(_L("verdict: pass"));
+	else
+		console->Write(_L("verdict: fail"));
+	console->Getch();
+	CleanupStack::PopAndDestroy(ptr);
+	console->Write(_L("Counts after free\n"));
+	for(TInt id=0;id<KOOMDummyPluginImplementationCount;id++)
+		{
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginLowMemoryCount, tmp));
+		finalLowCount[id] = tmp;
+		User::LeaveIfError(RProperty::Get(KUidOomPropertyCategory, id + KUidOOMDummyPluginFirstImplementation + KOOMDummyPluginGoodMemoryCount, tmp));
+		finalGoodCount[id] = tmp;
+		line.Format(_L("%x %d %d\n"), KUidOOMDummyPluginFirstImplementation + id, finalLowCount[id], finalGoodCount[id]);
+		console->Write(line);
+		if(finalGoodCount[id] - initialGoodCount[id] != 1) pass = EFalse;
+		}
+	//check status of dummy apps
+	User::After(2000000);
+	line.Format(_L("app1 %d app2 %d\n"), app1.ExitType(), app2.ExitType());
+	console->Write(line);
+	if(app1.ExitType() == EExitPending || app2.ExitType() == EExitPending) pass = EFalse;*/
+	if(pass)
+		console->Write(_L("verdict: pass"));
+	else
+		console->Write(_L("verdict: fail"));
+	console->Getch();
+	allocServer.Reset();
+	CleanupStack::PopAndDestroy(2);//apps, allocServer
+	}
+
+LOCAL_C void DoStartL()
+	{
+	// Create active scheduler (to run active objects)
+	CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+	CleanupStack::PushL(scheduler);
+	CActiveScheduler::Install(scheduler);
+
+	MainL();
+
+	// Delete active scheduler
+	CleanupStack::PopAndDestroy(scheduler);
+	}
+
+//  Global Functions
+
+GLDEF_C TInt E32Main()
+	{
+	// Create cleanup stack
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+
+	// Create output console
+	TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(
+			KConsFullScreen, KConsFullScreen)));
+	if (createError)
+		return createError;
+
+	// Run application code inside TRAP harness, wait keypress when terminated
+	TRAPD(mainError, DoStartL());
+	if (mainError)
+		console->Printf(KTextFailed, mainError);
+	console->Printf(KTextPressAnyKey);
+	console->Getch();
+
+	delete console;
+	delete cleanup;
+	__UHEAP_MARKEND;
+	return KErrNone;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/BWINS/t_oomharness_stifu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * LibEntryL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/EABI/t_oomharness_stifu.def	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+
+PRJ_TESTMMPFILES
+t_oomharness_stif.mmp
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/group/t_oomharness_stif.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+
+//uncomment to enable tests which require CLIENT_REQUEST_QUEUE
+macro CLIENT_REQUEST_QUEUE
+
+TARGET      t_oomharness_stif.dll
+TARGETTYPE  dll
+// First UID is DLL UID, Second UID is STIF Test Framework UID
+UID             0x1000008D 0x101FB3E7
+
+VENDORID        VID_DEFAULT
+
+CAPABILITY	ALL -TCB
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE		
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+
+	
+SOURCEPATH      ../src
+SOURCE		t_oomharness.cpp
+SOURCE		t_oomharnessCases.cpp
+SOURCE		CDummyApplicationHandle.cpp
+
+LIBRARY     euser.lib
+LIBRARY     stiftestinterface.lib
+LIBRARY     stiftestengine.lib
+LIBRARY		t_oomclient.lib 
+LIBRARY 	hal.lib
+LIBRARY        oommonitor.lib
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/inc/CDummyApplicationHandle.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef CDUMMYAPPLICATIONHANDLE_H
+#define CDUMMYAPPLICATIONHANDLE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <e32msgqueue.h> 
+
+// a few uids...use appuidlister to extract from the app_reg.rsc files
+// and mappings to uids not used by tests anymore
+const TInt KOomTestAppUid  = 0xE6CFBA01; // 0x101f8599
+const TInt KOomTestApp2Uid = 0xE6CFBA02; // 0x10005901
+const TInt KOomTestApp3Uid = 0xE6CFBA03; // 0x10005a22
+const TInt KOomTestApp4Uid = 0xE6CFBA04; // 0x101f4cd5
+const TInt KOomTestApp5Uid = 0xE6CFBA05; // 0x10005234
+const TInt KOomTestApp6Uid = 0xE6CFBA06; // 0x10207218
+const TInt KOomTestApp7Uid = 0xE6CFBA07; // 0x10008d39
+const TInt KOomTestApp8Uid = 0xE6CFBA08; // 0x10005903
+const TInt KOomTestApp9Uid = 0xE6CFBA09; // 0x101f4cce
+const TInt KOomTestApp10Uid = 0xE6CFBA0A; // 0x101f4cd2
+
+// CLASS DECLARATION
+
+/**
+ *  CCDummyApplicationHandle
+ * A helper class for launching dummy apps and checking their status
+ */
+NONSHARABLE_CLASS ( CCDummyApplicationHandle ) : public CBase
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * Destructor.
+	 */
+	~CCDummyApplicationHandle();
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CCDummyApplicationHandle* NewL(TUid aUid, TInt aExtraMemoryAllocation = 0);
+
+	/**
+	 * Two-phased constructor.
+	 */
+	static CCDummyApplicationHandle* NewLC(TUid aUid, TInt aExtraMemoryAllocation = 0);
+
+	inline RProcess& Process() { return iProcess; }
+	inline const TUid& Uid() { return iUid; }
+	
+	void SendMessage(TInt aMessage);
+	
+	void BringToForeground();
+	
+	static TBool CompareTo(const TUid* aKey, const CCDummyApplicationHandle& aValue);
+private:
+
+	/**
+	 * Constructor for performing 1st stage construction
+	 */
+	CCDummyApplicationHandle(TUid aUid);
+
+	/**
+	 * EPOC default constructor for performing 2nd stage construction
+	 */
+	void ConstructL(TInt aExtraMemoryAllocation = 0);
+
+	RProcess iProcess;
+	//a channel for sending control messages to the dummy app...
+	RMsgQueue<TInt> iMsgQueue;
+	TUid iUid;
+	};
+
+#endif // CDUMMYAPPLICATIONHANDLE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/inc/t_oomharness.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,681 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+#ifndef T_OOMHARNESS_H
+#define T_OOMHARNESS_H
+
+// INCLUDES
+#include "StifTestModule.h"
+#include <StifLogger.h>
+#include <e32hashtab.h>
+#include <e32cmn.h>
+#include "CDummyApplicationHandle.h"
+#include "t_oomclient.h"
+#include <oommonitorsession.h>
+#include <e32property.h>
+
+// CONSTANTS
+
+const TInt KSettlingTime = 2000000;
+const TInt KOomHarnessInitialEatenMemory= 1024; // Just eat 1K of memory initially, this can grow later
+const TInt KOomHarnessMaxEatenMemory = 64 * 1024 * 1024;
+
+const TInt KTimeout = 20000000; //20 secs
+
+enum TTestStates
+    {
+    // EInit: Test initialisation phase
+    ETestInit,
+    
+    // EPossiblePass: In the case of memorymonitor reporting EAboveTreshhold
+    ETestAbove,
+    
+    // EFail: All other cases including timeout
+    ETestBelow,
+    
+    ETestTimeout
+    };
+
+// MACROS
+// None
+
+// Logging path
+_LIT( KT_OomHarnessLogPath, "\\logs\\testframework\\T_OomHarness\\" ); 
+// Log file
+_LIT( KT_OomHarnessLogFile, "T_OomHarness.txt" ); 
+_LIT( KT_OomHarnessLogFileWithTitle, "T_OomHarness_[%S].txt" ); 
+
+// Function pointer related internal definitions
+// Rounding known bug in GCC
+#define GETPTR &  
+#define ENTRY(str,func) {_S(str), GETPTR func,0,0,0}
+#define FUNCENTRY(func) {_S(#func), GETPTR func,0,0,0}
+#define OOM_ENTRY(str,func,a,b,c) {_S(str), GETPTR func,a,b,c}
+#define OOM_FUNCENTRY(func,a,b,c) {_S(#func), GETPTR func,a,b,c}
+
+// FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+class COomTestHarness;
+class CMemoryMonitorStatusWatcher;
+class CMemoryMonitorTimeoutWatcher;
+
+// DATA TYPES
+// None
+
+// A typedef for function that does the actual testing,
+// function is a type 
+// TInt COomTestHarness::<NameOfFunction> ( TTestResult& aResult )
+typedef TInt (COomTestHarness::* TestFunction)(TTestResult&);    
+
+// CLASS DECLARATION
+
+/**
+*  An internal structure containing a test case name and
+*  the pointer to function doing the test
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class TCaseInfoInternal
+    {
+    public:
+        const TText* iCaseName;
+        TestFunction iMethod;
+        TBool           iIsOOMTest;
+        TInt            iFirstMemoryAllocation;
+        TInt            iLastMemoryAllocation;
+    };
+
+// CLASS DECLARATION
+
+/**
+*  A structure containing a test case name and
+*  the pointer to function doing the test
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class TCaseInfo
+    {
+    public:
+        TPtrC iCaseName;    
+        TestFunction iMethod;
+        TBool           iIsOOMTest;
+        TInt            iFirstMemoryAllocation;
+        TInt            iLastMemoryAllocation;
+
+    TCaseInfo( const TText* a ) : iCaseName( (TText*) a )
+        {        
+        };
+
+    };
+
+// CLASS DECLARATION
+
+/**
+*  This a T_OomHarness class.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(COomTestHarness) : public CTestModuleBase
+    {
+    public:  // Constructors and destructor
+
+
+        /**
+        * Two-phased constructor.
+        */
+        static COomTestHarness* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~COomTestHarness();
+
+    public: // New functions
+    // None
+
+    public: // Functions from base classes
+
+        /**
+        * From CTestModuleBase InitL is used to initialize the 
+        *       T_OomHarness. It is called once for every instance of 
+        *       TestModule T_OomHarness after its creation.
+        * @since ?Series60_version
+        * @param aIniFile Initialization file for the test module (optional)
+        * @param aFirstTime Flag is true when InitL is executed for first 
+        *               created instance of T_OomHarness.
+        * @return Symbian OS error code
+        */
+        TInt InitL( TFileName& aIniFile, TBool aFirstTime );
+
+        /**
+        * From CTestModuleBase GetTestCasesL is used to inquiry test cases 
+        *   from T_OomHarness. 
+        * @since ?Series60_version
+        * @param aTestCaseFile Test case file (optional)
+        * @param aTestCases  Array of TestCases returned to test framework
+        * @return Symbian OS error code
+        */
+        TInt GetTestCasesL( const TFileName& aTestCaseFile, 
+                            RPointerArray<TTestCaseInfo>& aTestCases );
+    
+        /**
+        * From CTestModuleBase RunTestCaseL is used to run an individual 
+        *   test case. 
+        * @since ?Series60_version
+        * @param aCaseNumber Test case number
+        * @param aTestCaseFile Test case file (optional)
+        * @param aResult Test case result returned to test framework (PASS/FAIL)
+        * @return Symbian OS error code (test case execution error, which is 
+        *           not reported in aResult parameter as test case failure).
+        */   
+        TInt RunTestCaseL( const TInt aCaseNumber, 
+                           const TFileName& aTestCaseFile,
+                           TTestResult& aResult );
+
+        /**
+        * From CTestModuleBase; OOMTestQueryL is used to specify is particular
+        * test case going to be executed using OOM conditions
+        * @param aTestCaseFile Test case file (optional)
+        * @param aCaseNumber Test case number (optional)
+        * @param aFailureType OOM failure type (optional)
+        * @param aFirstMemFailure The first heap memory allocation failure value (optional)
+        * @param aLastMemFailure The last heap memory allocation failure value (optional)
+        * @return TBool
+        */
+        virtual TBool OOMTestQueryL( const TFileName& /* aTestCaseFile */, 
+                                     const TInt /* aCaseNumber */, 
+                                     TOOMFailureType& aFailureType,
+                                     TInt& /* aFirstMemFailure */, 
+                                     TInt& /* aLastMemFailure */ );
+
+        /**
+        * From CTestModuleBase; OOMTestInitializeL may be used to initialize OOM
+        * test environment
+        * @param aTestCaseFile Test case file (optional)
+        * @param aCaseNumber Test case number (optional)
+        * @return None
+        */
+        virtual void OOMTestInitializeL( const TFileName& /* aTestCaseFile */, 
+                                    const TInt /* aCaseNumber */ ); 
+        /**
+        * From CTestModuleBase; OOMTestFinalizeL may be used to finalize OOM
+        * test environment
+        * @param aTestCaseFile Test case file (optional)
+        * @param aCaseNumber Test case number (optional)
+        * @return None
+        */
+        virtual void OOMTestFinalizeL( const TFileName& /* aTestCaseFile */, 
+                                       const TInt /* aCaseNumber */ );
+
+        /**
+        * From CTestModuleBase; OOMHandleWarningL
+        * @param aTestCaseFile Test case file (optional)
+        * @param aCaseNumber Test case number (optional)
+        * @param aFailNextValue FailNextValue for OOM test execution (optional)
+        * @return None
+        */
+        virtual void OOMHandleWarningL( const TFileName& /* aTestCaseFile */,
+                                        const TInt /* aCaseNumber */, 
+                                        TInt& /* aFailNextValue */);
+        void AllocateMemoryL(TInt aKBytes);
+        
+    protected:  // New functions    
+    // None
+
+    protected:  // Functions from base classes
+    // None
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        COomTestHarness();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Function returning test case name and pointer to test case function.
+        * @since ?Series60_version
+        * @param aCaseNumber test case number
+        * @return TCaseInfo 
+        */
+        const TCaseInfo Case ( const TInt aCaseNumber ) const;
+
+        // Test setup functions...
+        	
+        	// Close any dummy apps
+        	// Free all memory being eaten by the server
+        	// Update the call counts on the plugins (add them if they're not there already)
+        	void ResetL();
+        	
+        	void EatMemoryL(TInt aKBytesToLeaveFree);
+        	        	
+        	// Set up the plugins and applications - this is the starting point for many test cases
+        	// 5 applications are started with approx 1 MB used for each
+        	// 1MB (approx) of memory is reserved for each one of the plugins
+        	void CommonSetUpL();
+        	
+        	void StartApplicationL(TInt32 aUid, TInt aInitialAllocationInKBs);
+        	
+        // Results checking functions...
+        	
+        	// Returns KErrNone if we get the expected result
+        	TInt AppIsRunning(TInt32 aUid, TBool aExpectedResult);
+        	
+        	// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+        	// Returns KErrNone if we get the expected result
+        	TInt PluginFreeRamCalledL(TInt32 aUid, TBool aExpectedResult);
+
+        	// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+        	// Returns KErrNone if we get the expected result
+        	TInt PluginMemoryGoodCalledL(TInt32 aUid, TBool aExpectedResult);        
+        
+        	// Utility functions
+        	
+        	// Wait a while for the system to settle down
+        	inline void Settle();
+
+        	void BringAppToForeground(TInt32 aUid);
+        	
+ 
+        	TInt GetFreeMemory();
+        	
+        	// Utility function which calls the async version of optional RAM request and makes it behave like the sync version
+        	TInt RequestOptionalRamASyncWrapper(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable);        	
+        	
+        	// Utility function which starts the memory monitor property watcher.
+        	// The watcher stops the active scheduler when the monitor status changes
+        	void StartMemoryMonitorStatusWatcher(TInt& aTestState);
+        	
+        	// Utility function which starts the timeout watcher and the active scheduler 
+			// The watcher stops the active scheduler when the monitor status changes
+			// This function also cancels any pending requests when we are done
+        	void StartTimerAndRunWatcher(TInt& aTestState);
+        	
+        	// The tests...
+        	
+        	// Test normal application closure for a single app
+        	// Start three applications
+        	// The lowest priority app should be in the foregound
+        	// ... with the next lowest behind it
+        	// ... followed by the highest priority application at the back
+        	// The middle application should be configured to eat 5MB of memory
+        	// A low memory event is triggered and the middle application only should be closed
+        	TInt AppCloseTest1L(TTestResult& aResult);
+        	
+        	// Tests the idle time rule mechanism for app closure
+        	// Start three applications
+        	// The lowest priority app should be in the foregound
+        	// ... with the next lowest behind it
+        	// ... followed by the highest priority application at the back
+        	// After an idle period the highest priority app is configured to become the lowest priority
+        	// The middle and highest application should be configured to eat 5MB of memory
+        	// A low memory event is triggered and the middle application only should be closed
+        	// Note that this test should be the same as AppCloseTest1L, with the exception of the idle period which causes different apps to be closed
+        	TInt AppCloseIdleTimeTest1L(TTestResult& aResult);
+
+        	//Tests the that window group z order is considered when closing apps.
+        	//Start 3 apps of equal priority, ensuring their z order is known
+        	//Starts another lower priority app and puts that in the foreground
+        	//A low memory event is triggered such that only one app needs to be closed
+        	//The closed app should be the one furthest from the foreground in the z order
+        	TInt AppCloseEqualPrioritiesL(TTestResult& aResult);        	
+        	
+        	// Test system plugins and continue mode
+        	// Simulate a low memory event
+        	// Two system plugins should free enough memory, but four will be run because they work in "continue" mode
+        	TInt PluginTest1L(TTestResult& aResult);
+        	
+        	// Test application plugins
+        	// Start two target apps
+        	// Simulate a low memory event
+        	// The one of the application plugins should now be run, displacing one of the system plugins
+        	// The target apps are of sufficiently high priority that they will not be closed
+        	TInt PluginTest2L(TTestResult& aResult);
+        	
+        	// Test that the aBytesRequested is correctly passed to the FreeMemory function of V2 plugins
+        	// Initialise P4 plugin to consume 5MB of memory
+        	// No other plugins are configured to release memory
+        	// Simulate a low memory event (go just below the low threshold)
+        	// Check that the P4 plugin has been called
+        	// Check that the P4 plugin has received a request for > 500K and less than <1500K
+        	TInt PluginV2Test1L(TTestResult& aResult);
+        	
+        	// Test simple prioritisation of application plugins
+        	// Start two target applications
+        	// Configure all plugins to consume 0.5MB
+        	// Simulate a low memory event
+        	// Some of the low priority app plugins with those target applications should be called
+        	// The highest priority app with that target application should not be called (the lower priority plugins should free enough memory)
+        	TInt AppPluginTest1L(TTestResult& aResult);
+        	
+        	// Test simple prioritisation of application plugins
+        	// Start two target applications
+        	// Configure all plugins to consume 0.5MB
+        	// The app plugin with the highest priority is configured to be assigned the lowest priority after an idle time
+        	// Wait until the idle time rule applies
+        	// Simulate a low memory event
+        	// The plugin that initially had the highest priority (but now has the lowest priority) should be called
+        	// Note that this test should be the same as AppPluginTest1L with the addition of the idle period
+        	TInt AppPluginIdleTimeTest1L(TTestResult& aResult);	
+        	
+        	// Test idle time handling for plugins
+        	// Start two target apps
+        	// Simulate a low memory event
+        	// The one of the application plugins should now be run, displacing one of the system plugins
+        	// The target apps are of sufficiently high priority that they will not be closed
+        	TInt PluginIdleTimeTest2L(TTestResult& aResult);
+        	
+        	// Test the optional allocation mechanism
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 12MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just below the good memory level
+        	// Request an optional allocation of 10MB referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed freeing the required memory
+        	TInt OptionalAllocationTest1L(TTestResult& aResult);
+        	
+        	
+        	// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 5MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just above the good memory level
+        	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed freeing the required minimum amount memory
+        	// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+        	TInt OptionalAllocationTest2L(TTestResult& aResult);
+        	
+        	// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 3MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just above the good memory level
+        	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed but it won't free enough memory
+        	// The optional allocation should fail with KErrNoMemory
+        	TInt OptionalAllocationTest3L(TTestResult& aResult);
+        	
+        	
+        	// Test that force priority check applies (only) to selected priorities
+        	// Setup three plugins (priorities 7, 8 & 9)to eat 5MB each
+        	// The configuration file should force a check after priority 8
+        	// Drop just under the low threshold
+        	// Plugins P7 & P8 should be called (P8 is called even though the P7 plugin freed enough memory)
+        	// Plugin P9 should not be called because enou
+        	TInt ForcePriorityCheck1L(TTestResult& aResult);
+        	
+        	// Test the Busy API on the OOM server
+        	// Start three applications
+        	// Ensure that the lowest priority app is not in the foreground
+        	// Call the busy API on the OOM monitor for the lowest priority app
+        	// Simulate a low memory event by going just under the low threshold
+        	// The busy application should not be closed
+        	// The other (non-foreground) application should be closed
+        	TInt BusyApplicationTest1L(TTestResult& aResult);
+
+        	// Test the Normal-priority API on the OOM server
+        	// Start three applications
+        	// Ensure that the lowest priority app is not in the foreground
+        	// Call the busy API on the OOM monitor for the lowest priority app
+        	// Then call the not-busy API on the OOM monitor for the lowest priority app
+        	// Simulate a low memory event by going just under the low threshold
+        	// The lowest priority app should be closed (because it is no longer busy)
+        	TInt NormalPriorityApplicationTest1L(TTestResult& aResult);
+        
+        	// Test the async optional allocation mechanism
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 12MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just below the good memory level
+        	// Request an optional allocation of 10MB referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed freeing the required memory
+        	TInt OptionalAllocationAsyncTest1L(TTestResult& aResult);
+        	
+        	
+        	// Test the async optional allocation mechanism - minimum requested RAM behaviour - successful request
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 5MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just above the good memory level
+        	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed freeing the required minimum amount memory
+        	// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+        	TInt OptionalAllocationAsyncTest2L(TTestResult& aResult);
+        	
+        	// Test the async optional allocation mechanism - minimum requested RAM behaviour - failed request
+        	// Configure the plugins not to release any RAM when FreeRam is called
+        	// Configure one priority 7 application to release 3MB when FreeRam is called
+        	// Start this application (plus another one so it isn't in the foreground)
+        	// Drop just above the good memory level
+        	// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+        	// All of the plugins below P8 should be called
+        	// The P7 application should be closed but it won't free enough memory
+        	// The optional allocation should fail with KErrNoMemory
+        	TInt OptionalAllocationAsyncTest3L(TTestResult& aResult);
+
+        	// Test that sync mode configuration is working for system plugins
+        	// Configure three system plugins to release 5MB of memory each.
+        	// The plugins are configured as follows
+        	// Plugin 1: Priority 7, sync mode continue
+        	// Plugin 2: Priority 8, sync mode check
+        	// Plugin 3: Priority 9, sync mode continue
+        	// Drop just under the low threshold
+        	// Plugins 1 & 2 should be called (even though plugin 1 alone has freed enough RAM)
+        	// Plugin 3 won't be called because the check on the priority 8 plugin discovers that enough RAM has been freed
+        	TInt PluginSyncModeTest1L(TTestResult& aResult);	
+        	
+        	
+        	// Start three applications
+        	// One is set to NEVER_CLOSE, one is low priority, one is a dummy app to ensure that the first two are not in the foreground
+        	// Configure applications not to release any memory
+        	// Go just significantly under the low memory threshold
+        	// Wait for the system to recover, if we have moved above the low memory threshold then go significantly under it again. Repeat this step until we no longer go above low.
+        	// Check that the low priority application is closed
+        	// Check that the NEVER_CLOSE application is not closed (even though we're still below the low theshold)
+        	TInt NeverCloseTest1L(TTestResult& aResult);
+        	
+        	TInt AppCloseTwoSessionsL(TTestResult& aResult);
+
+            TInt CallIfTargetAppNotRunningTest1L(TTestResult& aResult);            	
+        
+            TInt AppCloseSpecificThresholdTest1L(TTestResult& aResult);
+            
+            // test that the plugins are left in the off state if a request for optional RAM 
+            // cannot be granted
+            TInt PluginTestInsufficientMemoryFreedL(TTestResult& aResult);
+            
+            // test that the plugins are left in the off state if a request for optional RAM 
+            // cannot be granted
+            // The test makes the optional RAM call from a state where memory is between the 
+            // global low and good thresholds
+            TInt PluginTestInsufficientMemoryFreed2L(TTestResult& aResult);
+            
+            
+    public:     // Data
+    // None
+
+    protected:  // Data
+    // None
+
+    private:    // Data
+        // Pointer to test (function) to be executed
+        TestFunction iMethod;
+
+        // Pointer to logger
+        CStifLogger * iLog;
+
+        // Normal logger
+        CStifLogger* iStdLog;
+
+        // Test case logger
+        CStifLogger* iTCLog;
+
+        // Flag saying if test case title should be added to log file name
+        TBool iAddTestCaseTitleToLogName;
+
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    	struct TPluginCallCount
+    		{
+    		TInt iFreeRamCallCount;
+    		TInt iMemoryGoodCallCount;
+    		};
+    	
+    	RHashMap<TInt32, TPluginCallCount> iPluginCallCounts;
+    	
+    	RPointerArray<CCDummyApplicationHandle> iApps;
+    	
+    	ROOMAllocSession iAllocServer;
+    	
+    	RChunk iChunk;
+    	TInt iChunkSize;    	
+
+        RChunk iDummyChunk;
+        TInt iDummyChunkSize;        
+    	
+    	ROomMonitorSession iOomSession;
+    	
+    	//CActiveScheduler needed by the memory monitor watchers
+    	CActiveScheduler* iScheduler;
+    	
+    	//The watchers
+    	CMemoryMonitorStatusWatcher* iStatusWatcher;
+    	CMemoryMonitorTimeoutWatcher* iTimeoutWatcher;      
+    	
+    	
+    public:     // Friend classes
+    // None
+
+    protected:  // Friend classes
+    // None
+
+    private:    // Friend classes
+    // None
+
+    };
+
+/**
+*  This CMemoryMonitorStatusWatcher class signals a client if the memorymonitor status becomes different from EFreeingMemory.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CMemoryMonitorStatusWatcher) : public CActive
+    {
+    public:
+        static CMemoryMonitorStatusWatcher* NewL();
+        ~CMemoryMonitorStatusWatcher();
+        void Start(TInt* aWatcherState);
+    private:
+        CMemoryMonitorStatusWatcher();
+        void ConstructL();
+        void DoCancel();
+        void RunL();
+    private:
+        RProperty iMonitorProperty;
+        TInt* iTestState;
+    };
+
+/**
+*  This CMemoryMonitorTimeoutWatcher class signals a client if the memorymonitor takes too long to leave EFreeingMemory state.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CMemoryMonitorTimeoutWatcher) : public CTimer
+    {
+public:
+    static CMemoryMonitorTimeoutWatcher* NewL();
+    ~CMemoryMonitorTimeoutWatcher();
+    void Start(TInt* aTestState, const TTimeIntervalMicroSeconds32& aTimeout);
+    
+private:
+    CMemoryMonitorTimeoutWatcher();
+    void ConstructL();
+    void DoCancel();
+    void RunL();
+private:
+    TInt* iTestState;
+    };
+
+struct TReturnStatus
+    {
+    TInt iId;
+    TBool iCompleted;
+    TInt iReturnStatus;
+    };
+
+
+NONSHARABLE_CLASS(CAsyncRequester) : public CActive
+    {
+public:
+    static CAsyncRequester* NewL(RChunk aChunk, TInt aChunkSize);
+    ~CAsyncRequester();
+    void Start(TInt aBytesToRequest, TReturnStatus* aReturnStatus);
+    
+private:
+    CAsyncRequester(RChunk aChunk, TInt aChunkSize);
+    void ConstructL();
+    void DoCancel();
+    void RunL();
+private:
+    ROomMonitorSession iSession;
+    TReturnStatus* iReturnStatus;
+    RChunk iChunk;
+    TInt iChunkSize;
+    };
+
+
+
+inline void COomTestHarness::Settle()
+	{
+	//wait for oom system to settle
+	User::After(TTimeIntervalMicroSeconds32(KSettlingTime));
+	}
+
+#endif      // T_OOMHARNESS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/src/CDummyApplicationHandle.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <w32std.h>
+#include "CDummyApplicationHandle.h"
+
+CCDummyApplicationHandle::CCDummyApplicationHandle(TUid aUid)
+: iUid(aUid)
+	{
+	// No implementation required
+	}
+
+CCDummyApplicationHandle::~CCDummyApplicationHandle()
+	{
+	if(iMsgQueue.Handle())
+		{
+		iMsgQueue.SendBlocking(0);
+		iMsgQueue.Close();
+		}
+	iProcess.Close();
+	}
+
+CCDummyApplicationHandle* CCDummyApplicationHandle::NewLC(TUid aUid, TInt aExtraMemoryAllocation)
+	{
+	CCDummyApplicationHandle* self = new (ELeave) CCDummyApplicationHandle(aUid);
+	CleanupStack::PushL(self);
+	self->ConstructL(aExtraMemoryAllocation);
+	return self;
+	}
+
+CCDummyApplicationHandle* CCDummyApplicationHandle::NewL(TUid aUid, TInt aExtraMemoryAllocation)
+	{
+	CCDummyApplicationHandle* self = CCDummyApplicationHandle::NewLC(aUid, aExtraMemoryAllocation);
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+
+void CCDummyApplicationHandle::ConstructL(TInt aExtraMemoryAllocation)
+	{
+	TBuf<28> params;
+	params.Format(_L("uid=%08x alloc=%x"), iUid, aExtraMemoryAllocation);
+	User::LeaveIfError(iProcess.Create(_L("t_oomdummyapp_0xE6CFBA00.exe"), params));
+	User::LeaveIfError(iMsgQueue.CreateGlobal(KNullDesC, 4));
+	User::LeaveIfError(iProcess.SetParameter(15, iMsgQueue));
+	iProcess.Resume();
+	}
+
+void CCDummyApplicationHandle::SendMessage(TInt aMessage)
+	{
+	iMsgQueue.SendBlocking(aMessage);
+	}
+
+TBool CCDummyApplicationHandle::CompareTo(const TUid* aKey, const CCDummyApplicationHandle& aValue)
+	{
+	return aValue.iUid == *aKey;
+	}
+
+void CCDummyApplicationHandle::BringToForeground()
+	{
+	SendMessage(1);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/src/t_oomharness.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,584 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include <Stiftestinterface.h>
+#include "t_oomharness.h"
+#include <e32math.h>
+#include "SettingServerClient.h"
+#include <e32property.h>
+
+// EXTERNAL DATA STRUCTURES
+// None
+
+// EXTERNAL FUNCTION PROTOTYPES  
+// None
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// LOCAL CONSTANTS AND MACROS
+// None
+
+// MODULE DATA STRUCTURES
+// None
+
+// LOCAL FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// ==================== LOCAL FUNCTIONS =======================================
+
+
+/*
+-------------------------------------------------------------------------------
+
+    DESCRIPTION
+    
+    This file (t_oomharness.cpp) contains all test framework related parts of
+    this test module. Actual test cases are implemented in file 
+    t_oomharnesscases.cpp.
+
+    COomTestHarness is an example of test module implementation. This example
+    uses hard coded test cases (i.e it does not have any test case
+    configuration file).
+
+    Example uses function pointers to call test cases. This provides an easy
+    method to add new test cases.
+
+    See function Cases in file t_oomharnesscases.cpp for instructions how to
+    add new test cases. It is not necessary to modify this file when adding
+    new test cases.
+
+    To take this module into use, add following lines to test framework
+    initialisation file:
+
+# t_oomharness_stif
+[New_Module]
+ModuleName= t_oomharness_stif
+[End_Module]
+
+-------------------------------------------------------------------------------
+*/
+
+// ================= MEMBER FUNCTIONS =========================================
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: COomTestHarness
+
+    Description: C++ default constructor can NOT contain any code, that
+    might leave.
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+COomTestHarness::COomTestHarness()
+    {
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: ConstructL
+
+    Description: Symbian 2nd phase constructor that can leave.
+
+    Note: If OOM test case uses STIF Logger, then STIF Logger must be created
+    with static buffer size parameter (aStaticBufferSize). Otherwise Logger 
+    allocates memory from heap and therefore causes error situations with OOM 
+    testing. For more information about STIF Logger construction, see STIF 
+    Users Guide.
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+void COomTestHarness::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+    iAddTestCaseTitleToLogName = loggerSettings.iAddTestCaseTitle;
+    
+    // Constructing static buffer size logger, needed with OOM testing because
+    // normally logger allocates memory from heap!
+    iStdLog = CStifLogger::NewL( KT_OomHarnessLogPath, 
+                              KT_OomHarnessLogFile,
+                              CStifLogger::ETxt,
+                              CStifLogger::EFile,
+                              ETrue,
+                              ETrue,
+                              ETrue,
+                              EFalse,
+                              ETrue,
+                              EFalse,
+                              100 );
+    iLog = iStdLog;
+    
+    // Sample how to use logging
+    _LIT( KLogInfo, "t_oomharness logging starts!" );
+    iLog->Log( KLogInfo );
+    
+	User::LeaveIfError(iAllocServer.Connect());
+	User::LeaveIfError(iOomSession.Connect());
+	
+	User::LeaveIfError(iChunk.CreateLocal(KOomHarnessInitialEatenMemory, KOomHarnessMaxEatenMemory));
+	iChunkSize = KOomHarnessInitialEatenMemory;
+	
+    iScheduler = new (ELeave) CActiveScheduler;
+    CActiveScheduler::Install( iScheduler );
+    
+    iStatusWatcher = CMemoryMonitorStatusWatcher::NewL();
+    iTimeoutWatcher = CMemoryMonitorTimeoutWatcher::NewL();
+    
+	ResetL();
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: NewL
+
+    Description: Two-phased constructor. Constructs new COomTestHarness
+    instance and returns pointer to it.
+
+    Parameters:    None
+
+    Return Values: COomTestHarness*: new object.
+
+    Errors/Exceptions: Leaves if memory allocation fails or ConstructL leaves.
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+COomTestHarness* COomTestHarness::NewL()
+    {
+    COomTestHarness* self = new (ELeave) COomTestHarness;
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: ~COomTestHarness
+
+    Description: Destructor.
+
+    Parameters:    None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+COomTestHarness::~COomTestHarness()
+    { 
+    iLog = NULL;
+    delete iStdLog;
+    iStdLog = NULL;
+    delete iTCLog;
+    iTCLog = NULL;
+	iApps.ResetAndDestroy();
+	iAllocServer.Close();
+	iChunk.Close();
+	iPluginCallCounts.Close();
+	delete iScheduler;
+    delete iStatusWatcher;
+    delete iTimeoutWatcher;
+    }
+
+/*
+-------------------------------------------------------------------------------
+    Class: COomTestHarness
+
+    Method: InitL
+
+    Description: Method for test case initialization
+    
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+-------------------------------------------------------------------------------
+*/
+TInt COomTestHarness::InitL( TFileName& /*aIniFile*/, 
+                         TBool /*aFirstTime*/ )
+    {
+    return KErrNone;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: GetTestCases
+
+    Description: GetTestCases is used to inquire test cases 
+    from the test module. Because this test module has hard coded test cases
+    (i.e cases are not read from file), paramter aConfigFile is not used.
+
+    This function loops through all cases defined in Cases() function and 
+    adds corresponding items to aTestCases array.
+
+    Parameters: const TFileName&  : in: Configuration file name. Not used                                                       
+                RPointerArray<TTestCaseInfo>& aTestCases: out: 
+                      Array of TestCases.
+    
+    Return Values: KErrNone: No error
+
+    Errors/Exceptions: Function leaves if any memory allocation operation fails
+
+    Status: Proposal
+    
+-------------------------------------------------------------------------------
+*/      
+TInt COomTestHarness::GetTestCasesL( const TFileName& /*aConfig*/, 
+                                 RPointerArray<TTestCaseInfo>& aTestCases )
+    {
+    // Loop through all test cases and create new
+    // TTestCaseInfo items and append items to aTestCase array    
+    for( TInt i = 0; Case(i).iMethod != NULL; i++ )
+        {
+        // Allocate new TTestCaseInfo from heap for a testcase definition.
+        TTestCaseInfo* newCase = new( ELeave ) TTestCaseInfo();
+    
+        // PushL TTestCaseInfo to CleanupStack.    
+        CleanupStack::PushL( newCase );
+
+        // Set number for the testcase.
+        // When the testcase is run, this comes as a parameter to RunTestCaseL.
+        newCase->iCaseNumber = i;
+
+        // Set title for the test case. This is shown in UI to user.
+        newCase->iTitle.Copy( Case(i).iCaseName );
+
+        // Append TTestCaseInfo to the testcase array. After appended 
+        // successfully the TTestCaseInfo object is owned (and freed) 
+        // by the TestServer. 
+        User::LeaveIfError(aTestCases.Append ( newCase ) );
+        
+        // Pop TTestCaseInfo from the CleanupStack.
+        CleanupStack::Pop( newCase );
+        }
+
+    return KErrNone;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: RunTestCase
+
+    Description: Run a specified testcase.
+
+    Function runs a test case specified by test case number. Test case file
+    parameter is not used.
+
+    If case number is valid, this function runs a test case returned by
+    function Cases(). 
+
+    Parameters: const TInt aCaseNumber: in: Testcase number 
+                const TFileName& : in: Configuration file name. Not used
+                TTestResult& aResult: out: Testcase result
+
+    Return Values: KErrNone: Testcase ran.
+                   KErrNotFound: Unknown testcase
+
+    Errors/Exceptions: None
+    
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/
+TInt COomTestHarness::RunTestCaseL( const TInt aCaseNumber,
+                                const TFileName& /* aConfig */,
+                                TTestResult& aResult )
+    {
+    // Return value
+    TInt execStatus = KErrNone;
+
+    // Get the pointer to test case function
+    TCaseInfo tmp = Case ( aCaseNumber );
+
+    _LIT( KLogInfo, "Starting testcase [%S]" );
+    iLog->Log( KLogInfo, &tmp.iCaseName);
+
+    // Check that case number was valid
+    if ( tmp.iMethod != NULL )
+        {
+        //Open new log file with test case title in file name
+        if(iAddTestCaseTitleToLogName)
+            {
+            //delete iLog; //Close currently opened log
+            //iLog = NULL;
+            //Delete test case logger if exists
+            if(iTCLog)
+                {
+                delete iTCLog;
+                iTCLog = NULL;
+                }
+                
+            TFileName logFileName;
+            TName title;
+            TestModuleIf().GetTestCaseTitleL(title);
+        
+            logFileName.Format(KT_OomHarnessLogFileWithTitle, &title);
+
+            iTCLog = CStifLogger::NewL(KT_OomHarnessLogPath, 
+                                     logFileName,
+                                     CStifLogger::ETxt,
+                                     CStifLogger::EFile,
+                                     ETrue,
+                                     ETrue,
+                                     ETrue,
+                                     EFalse,
+                                     ETrue,
+                                     EFalse,
+                                     100);
+            iLog = iTCLog;
+            }
+
+        // Valid case was found, call it via function pointer
+        iMethod = tmp.iMethod;        
+        //execStatus  = ( this->*iMethod )( aResult );
+        TRAPD(err, execStatus  = ( this->*iMethod )( aResult ));
+        if(iAddTestCaseTitleToLogName)
+            {
+            //Restore standard log and destroy test case logger
+            iLog = iStdLog;
+            delete iTCLog; //Close currently opened log
+            iTCLog = NULL;
+            }
+        User::LeaveIfError(err);
+        
+        }
+    else
+        {
+        // Valid case was not found, return error.
+        execStatus = KErrNotFound;
+        }
+
+    // Return case execution status (not the result of the case execution)
+    return execStatus;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: OOMTestQueryL
+
+    Description: Checks test case information for OOM execution. 
+
+    Return Values: TBool
+
+    Errors/Exceptions: None
+
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/
+TBool COomTestHarness::OOMTestQueryL( const TFileName& /* aTestCaseFile */, 
+                                  const TInt aCaseNumber, 
+                                  TOOMFailureType& /* aFailureType */, 
+                                  TInt& aFirstMemFailure, 
+                                  TInt& aLastMemFailure ) 
+    {
+    _LIT( KLogInfo, "COomTestHarness::OOMTestQueryL" );
+    iLog->Log( KLogInfo ); 
+
+    aFirstMemFailure = Case( aCaseNumber ).iFirstMemoryAllocation;
+    aLastMemFailure = Case( aCaseNumber ).iLastMemoryAllocation;
+
+    return Case( aCaseNumber ).iIsOOMTest;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: OOMTestInitializeL
+
+    Description: Used to perform the test environment setup for a particular
+    OOM test case. Test Modules may use the initialization file to read 
+    parameters for Test Module initialization but they can also have their own
+    configure file or some other routine to initialize themselves. 
+
+    NOTE: User may add implementation for OOM test environment initialization.
+    Usually no implementation is required.
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/
+void COomTestHarness::OOMTestInitializeL( const TFileName& /* aTestCaseFile */, 
+                                      const TInt /* aCaseNumber */ )
+    {
+    _LIT( KLogInfo, "COomTestHarness::OOMTestInitializeL" );
+    iLog->Log( KLogInfo ); 
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: OOMHandleWarningL
+
+    Description: Used in OOM testing to provide a way to the derived TestModule 
+    to handle warnings related to non-leaving or TRAPped allocations.
+
+    In some cases the allocation should be skipped, either due to problems in 
+    the OS code or components used by the code being tested, or even inside the
+    tested components which are implemented this way on purpose (by design), so
+    it is important to give the tester a way to bypass allocation failures.
+
+    NOTE: User may add implementation for OOM test warning handling. Usually no
+    implementation is required.    
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/
+void COomTestHarness::OOMHandleWarningL( const TFileName& /* aTestCaseFile */,
+                                     const TInt /* aCaseNumber */, 
+                                     TInt& /* aFailNextValue */ )
+    {
+    _LIT( KLogInfo, "COomTestHarness::OOMHandleWarningL" );
+    iLog->Log( KLogInfo );
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: OOMTestFinalizeL
+
+    Description: Used to perform the test environment cleanup for a particular OOM 
+    test case.
+
+    NOTE: User may add implementation for OOM test environment finalization.
+    Usually no implementation is required.   
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/
+void COomTestHarness::OOMTestFinalizeL( const TFileName& /* aTestCaseFile */, 
+                                    const TInt /* aCaseNumber */ )
+    {
+    _LIT( KLogInfo, "COomTestHarness::OOMTestFinalizeL" );
+    iLog->Log( KLogInfo );
+
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point
+// Returns: CTestModuleBase*: Pointer to Test Module object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CTestModuleBase* LibEntryL()
+    {
+    return COomTestHarness::NewL();
+
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/src/t_oomharnesscases.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,3332 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include <e32hal.h>	//User::HAL
+#include <e32property.h> //RProperty
+#include "t_oomharness.h"
+#include "CDummyApplicationHandle.h"
+#include "../../t_oomdummyapp/inc/t_oomdummyappmsgs.h"
+#include "t_oomdummyplugin_properties.h"
+#include <hal.h>
+
+// EXTERNAL DATA STRUCTURES
+// None
+
+// EXTERNAL FUNCTION PROTOTYPES  
+// None
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// LOCAL CONSTANTS AND MACROS
+
+const TInt KOomJustUnderLowMemoryThreshold = 4000;
+const TInt KOomSignificantlyUnderLowMemoryThreshold = 2024;
+const TInt KOomBetweenLowAndGoodThresholds = 4300;
+const TInt KOomJustAboveGoodMemoryThreshold = 5100;
+
+const TInt KOomTestFirstIdlePeriod = 40000000; // 40 seconds
+
+
+// MODULE DATA STRUCTURES
+// None
+
+// LOCAL FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// ==================== LOCAL FUNCTIONS =======================================
+
+/*
+-------------------------------------------------------------------------------
+
+    DESCRIPTION
+
+    This module contains the implementation of COomTestHarness class 
+    member functions that does the actual tests.
+
+-------------------------------------------------------------------------------
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: COomTestHarness
+
+    Method: Case
+
+    Description: Returns a test case by number.
+
+    This function contains an array of all available test cases 
+    i.e pair of case name and test function. If case specified by parameter
+    aCaseNumber is found from array, then that item is returned.
+
+    The reason for this rather complicated function is to specify all the
+    test cases only in one place. It is not necessary to understand how
+    function pointers to class member functions works when adding new test
+    cases. See function body for instructions how to add new test case.
+    
+    Parameters:    const TInt aCaseNumber :in:      Test case number
+
+    Return Values: const TCaseInfo Struct containing case name & function
+
+    Errors/Exceptions: None
+
+    Status: Proposal
+
+-------------------------------------------------------------------------------
+*/ 
+const TCaseInfo COomTestHarness::Case ( 
+    const TInt aCaseNumber ) const 
+     {
+
+    /*
+    * To add new test cases, implement new test case function and add new 
+    * line to KCases array specify the name of the case and the function 
+    * doing the test case
+    * In practice, do following
+    *
+    * 1) Make copy of existing test case function and change its name
+    *    and functionality. Note that the function must be added to 
+    *    OOMHard.cpp file and to OOMHard.h 
+    *    header file.
+    *
+    * 2) Add entry to following KCases array either by using:
+    *
+    * 2.1: FUNCENTRY or ENTRY macro
+    * ENTRY macro takes two parameters: test case name and test case 
+    * function name.
+    *
+    * FUNCENTRY macro takes only test case function name as a parameter and
+    * uses that as a test case name and test case function name.
+    *
+    * Or
+    *
+    * 2.2: OOM_FUNCENTRY or OOM_ENTRY macro. Note that these macros are used
+    * only with OOM (Out-Of-Memory) testing!
+    *
+    * OOM_ENTRY macro takes five parameters: test case name, test case 
+    * function name, TBool which specifies is method supposed to be run using
+    * OOM conditions, TInt value for first heap memory allocation failure and 
+    * TInt value for last heap memory allocation failure.
+    * 
+    * OOM_FUNCENTRY macro takes test case function name as a parameter and uses
+    * that as a test case name, TBool which specifies is method supposed to be
+    * run using OOM conditions, TInt value for first heap memory allocation 
+    * failure and TInt value for last heap memory allocation failure. 
+    */ 
+
+    static TCaseInfoInternal const KCases[] =
+        {
+        // To add new test cases, add new items to this array
+        
+        // NOTE: When compiled to GCCE, there must be Classname::
+        // declaration in front of the method name, e.g. 
+        // COomTestHarness::PrintTest. Otherwise the compiler
+        // gives errors.
+                        		
+        ENTRY( "App Close Test 1", COomTestHarness::AppCloseTest1L ),
+        ENTRY( "App Close Idle Time", COomTestHarness::AppCloseIdleTimeTest1L ),
+        ENTRY( "App Close Equal Priorities", COomTestHarness::AppCloseEqualPrioritiesL ),        
+        ENTRY( "Plugin Test 1", COomTestHarness::PluginTest1L ),
+        ENTRY( "Plugin Test 2", COomTestHarness::PluginTest2L ),
+        ENTRY( "App Plugin Test 1", COomTestHarness::AppPluginTest1L ),
+        ENTRY( "App Plugin Idle Time Test 1", COomTestHarness::AppPluginIdleTimeTest1L ),
+        ENTRY( "Optional Allocation Test 1", COomTestHarness::OptionalAllocationTest1L ),
+        ENTRY( "Optional Allocation Test 2", COomTestHarness::OptionalAllocationTest2L ),
+        ENTRY( "Optional Allocation Test 3", COomTestHarness::OptionalAllocationTest3L ),
+        ENTRY( "Plugin V2 Test 1", COomTestHarness::PluginV2Test1L ),
+        ENTRY( "Force Priority Check Test 1", COomTestHarness::ForcePriorityCheck1L ),
+		ENTRY( "Plugin Sync Mode Test 1", COomTestHarness::PluginSyncModeTest1L ),
+		ENTRY( "Never Close Test 1", COomTestHarness::NeverCloseTest1L ),
+		ENTRY( "Optional Allocation Async Test 1", COomTestHarness::OptionalAllocationAsyncTest1L ),
+		ENTRY( "Optional Allocation Async Test 2", COomTestHarness::OptionalAllocationAsyncTest2L ),
+		ENTRY( "Optional Allocation Async Test 3", COomTestHarness::OptionalAllocationAsyncTest3L ),
+#ifdef CLIENT_REQUEST_QUEUE
+		ENTRY( "App Close Two Client Sessions", COomTestHarness::AppCloseTwoSessionsL ),
+#endif		
+        ENTRY( "Call If Target App Not Running Test 1", COomTestHarness::CallIfTargetAppNotRunningTest1L ),		
+#ifdef __WINS__
+        ENTRY( "App Close Specific Threshold Test 1", COomTestHarness::AppCloseSpecificThresholdTest1L ),     
+#endif
+        ENTRY( "Plugin Test Insufficient Memory Freed", COomTestHarness::PluginTestInsufficientMemoryFreedL ),
+        ENTRY( "Plugin Test Insufficient Memory Freed 2", COomTestHarness::PluginTestInsufficientMemoryFreed2L ),
+        };
+
+    // Verify that case number is valid
+    if( (TUint) aCaseNumber >= sizeof( KCases ) / 
+                               sizeof( TCaseInfoInternal ) )
+        {
+
+        // Invalid case, construct empty object
+        TCaseInfo null( (const TText*) L"" );
+        null.iMethod = NULL;
+        null.iIsOOMTest = EFalse;
+        null.iFirstMemoryAllocation = 0;
+        null.iLastMemoryAllocation = 0;
+        return null;
+
+        } 
+
+    // Construct TCaseInfo object and return it
+    TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName );
+    tmp.iMethod = KCases[ aCaseNumber ].iMethod;
+    tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest;
+    tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation;
+    tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation;
+    return tmp;
+
+    }
+
+TInt COomTestHarness::AppCloseTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	StartApplicationL(KOomTestAppUid, 5 * 1024); // P9 app
+	StartApplicationL(KOomTestApp2Uid, 5 * 1024); // P8 app, configure it to eat 5MB
+	StartApplicationL(KOomTestApp3Uid, 0); // P7 app
+	
+	BringAppToForeground(KOomTestApp3Uid);
+	
+	//start watchers
+	TInt memTestState = ETestInit;
+	TInt err = KErrNone;
+	
+	StartMemoryMonitorStatusWatcher(memTestState);
+
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        err = AppIsRunning(KOomTestApp2Uid, EFalse);
+        
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P8 App KOomTestApp2Uid incorrectly running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+           // Case was executed but failed
+            }
+        if (err == KErrNone)
+            {	
+            err = AppIsRunning(KOomTestApp3Uid, ETrue);	
+            if (err != KErrNone)
+                {
+                // The P7 app should still be running because it was in the foreground
+                _LIT( KResult ,"(P7 App KOomTestApp3Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {	
+            err = AppIsRunning(KOomTestAppUid, ETrue);	
+            if (err != KErrNone)
+                {
+                // The P9 app should still be running because the P8 application freed enough memory
+                _LIT( KResult ,"P9 App KOomTestAppUid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+	ResetL();    
+    return KErrNone;	
+	}
+
+// Tests the idle time rule mechanism for app closure
+// Start three applications
+// The lowest priority app should be in the foregound
+// ... with the next lowest behind it
+// ... followed by the highest priority application at the back
+// After an idle period the highest priority app is configured to become the lowest priority
+// The middle and highest application should be configured to eat 5MB of memory
+// A low memory event is triggered and the middle application only should be closed
+// Note that this test should be the same as AppCloseTest1L, with the exception of the idle period which causes different apps to be closed
+TInt COomTestHarness::AppCloseIdleTimeTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// The lowest priority app should be in the foregound
+	// ... with the next lowest behind it
+	// ... followed by the highest priority application at the back
+	StartApplicationL(KOomTestAppUid, 5 * 1024); // P9 app (which becomes a P2 app after the idle time)
+	StartApplicationL(KOomTestApp2Uid, 5 * 1024); // P8 app, configure it to eat 5MB
+	StartApplicationL(KOomTestApp3Uid, 0); // P7 app
+	
+	BringAppToForeground(KOomTestApp3Uid);
+	
+	// Wait for the first set of idle time rules to apply
+	User::After(KOomTestFirstIdlePeriod);
+	
+	//start watchers
+	TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);        
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+	    err = AppIsRunning(KOomTestAppUid, EFalse);		
+
+	    if (err != KErrNone)
+	        {
+	        // The P9 app should have become a P2 app after the idle period, therefore it should have been the first candidate for closure
+	        _LIT( KResult ,"P9->P2 App KOomTestAppUid running");
+	        aResult.iResultDes.Copy( KResult );
+	        aResult.iResult = KErrGeneral;
+	        // Case was executed but failed
+	        }	
+
+	    if (err == KErrNone)
+	        {	
+	        err = AppIsRunning(KOomTestApp2Uid, ETrue);
+	        if (err != KErrNone)
+	            {
+	            // The P8 application should still be running because the P9 app (that has become a P2 app) has freed the required memory
+	            _LIT( KResult ,"P8 App KOomTestApp2Uid not running");
+	            aResult.iResultDes.Copy( KResult );
+	            aResult.iResult = KErrGeneral;
+	            // Case was executed but failed
+	            }		
+	        }
+
+	    if (err == KErrNone)
+	        {	
+	        err = AppIsRunning(KOomTestApp3Uid, ETrue);	
+	        if (err != KErrNone)
+	            {
+	            // The P7 app should still be running because it was in the foreground
+	            _LIT( KResult ,"P7 App KOomTestApp3Uid not running");
+	            aResult.iResultDes.Copy( KResult );
+	            aResult.iResult = KErrGeneral;
+	            // Case was executed but failed
+	            }	
+	        }
+
+	    if (err == KErrNone)
+	        {
+	        _LIT( KDescription , "Test case passed");
+	        aResult.SetResult( KErrNone, KDescription );
+	        }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+TInt COomTestHarness::AppCloseEqualPrioritiesL(TTestResult& aResult)
+	{
+	ResetL();
+	
+	StartApplicationL(KOomTestApp4Uid, 3 * 1024); // P7 app1, configure it to eat 5MB
+
+	Settle();	
+	
+	StartApplicationL(KOomTestApp3Uid, 3 * 1024); // P7 app2, configure it to eat 5MB
+
+	Settle();
+	
+	StartApplicationL(KOomTestApp5Uid, 3 * 1024); // P7 app3, configure it to eat 5MB
+
+	Settle();	
+	
+	StartApplicationL(KOomTestAppUid, 0); //P9 app
+	
+	Settle();
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        err = AppIsRunning(KOomTestApp4Uid, EFalse);	
+        if (err != KErrNone)
+            {
+            // The P7 app furthest to the back in the z order should be closed.
+            // This should release sufficient memory.
+            _LIT( KResult ,"P7 App KOomTestApp4Uid incorrectly running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+           // Case was executed but failed
+            }
+        
+        // the other 3 apps should all still be running
+        if (err == KErrNone)
+            {	
+            err = AppIsRunning(KOomTestApp3Uid, ETrue);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"App KOomTestApp3Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {	
+            err = AppIsRunning(KOomTestApp5Uid, ETrue);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"App KOomTestApp5Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {	
+            err = AppIsRunning(KOomTestAppUid, ETrue);	
+            if (err != KErrNone)
+                {
+                // The P9 app should still be running because the P8 application freed enough memory
+                _LIT( KResult ,"P9 App KOomTestAppUid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+TInt COomTestHarness::PluginTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the plugins to eat 0.6MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x96000, 0x96000));
+		}
+	//start application so that plugin 0x10286A3A which does the check can be called
+	StartApplicationL(KOomTestApp2Uid, 0);
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+    
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    if (err == KErrNone && memTestState == ETestAbove)
+        {	
+        // The first two app plugins should have been run, releasing 
+        // the required memory. The second app plugin to be run - 10286A3A - has a check,
+        // so no other plugins should have run.
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);	
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3B FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        
+        if (err == KErrNone)
+            {	
+            err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A3A FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        // These two plugins should not be called	
+        if (err == KErrNone)
+            {	
+            err = PluginFreeRamCalledL(0x10286A38, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A38 FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }	
+        
+        if 	(err == KErrNone)
+            {
+            err = PluginFreeRamCalledL(0x10286A34, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A34 FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }	
+    
+        // Finally check that the plugins have been notified of the final good memory state
+        if (err == KErrNone)
+            {					
+            err = PluginMemoryGoodCalledL(0x10286A3A, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin  0x10286A3A MemoryGood not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+            
+        if (err == KErrNone)
+            {					
+            err = PluginMemoryGoodCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin  0x10286A3B MemoryGood not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {					
+            err = PluginMemoryGoodCalledL(0x10286A34, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin  0x10286A34 MemoryGood incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            // MemoryGood should not be called on this plugin because FreeMemory was never called on it
+            // 10286A38
+            err = PluginMemoryGoodCalledL(0x10286A38, EFalse);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A38 MemoryGood incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test application plugins
+// Start two target apps
+// Simulate a low memory event
+// The one of the application plugins should now be run, displacing one of the system plugins
+// The target apps are of sufficiently high priority that they will not be closed
+TInt COomTestHarness::PluginTest2L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp2Uid, 0);
+	StartApplicationL(KOomTestApp3Uid, 0);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        // The first two system plugins should have been closed, releasing the required memory
+        // The following two system plugins won't be called (the app plugins will now take their place)
+        
+        // The following plugins should be called...
+        // Application plugins: 10286A3A 10286A3B
+        // System plugins: 10286A3C(v2 plugin) 10286A34
+        
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A3B not called ");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        
+        if (err == KErrNone)
+            {					
+            err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin  0x10286A3A not called ");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {	
+            // Plugins and apps with higher priorities will not be called/closed because 0x10286A3A is configured to check memory before running anything else
+            err = PluginFreeRamCalledL(0x10286A3C, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3C incorrectly called ");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {		
+            err = PluginFreeRamCalledL(0x10286A34, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A34 incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {	
+            // The following plugin should also be called (max_batch_size only applies to application closures, not running plugins)
+            // 10286A35
+            err = PluginFreeRamCalledL(0x10286A35, EFalse);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A35 incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {		
+            err = AppIsRunning(KOomTestApp3Uid, ETrue);		
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"App KOomTestApp3Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {		
+            err = AppIsRunning(KOomTestApp2Uid, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"App KOomTestApp2Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            err = AppIsRunning(KOomTestAppUid, ETrue);		
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin KOomTestAppUid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+// Test that the aBytesRequested is correctly passed to the FreeMemory function of V2 plugins
+// Initialise P4 plugin to consume 5MB of memory
+// No other plugins are configured to release memory
+// Simulate a low memory event (go just below the low threshold)
+// Check that the P4 plugin has been called
+// Check that the P4 plugin has received a request for > 500K and less than <1500K
+TInt COomTestHarness::PluginV2Test1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the P4 V2 plugin to eat 5MB:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3C), 0, 0x500000, 0x500000));
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        // The first four system plugins should have been closed, releasing the required memory
+        // All four plugins should be called, even though the first two will release enough memory (this is because
+        // plugins are always run in continue mode)
+        
+        // Check that the P4 plugin has been called
+        err = PluginFreeRamCalledL(0x10286A3C, ETrue);
+        
+        // Check that the request for memory was about right
+        // Note: regular system variation makes it impossible to test for an exact number
+        TInt requestedMemory = 0;
+        err = RProperty::Get(KUidOomPropertyCategory, 0x10286A3C + KOOMDummyPluginBytesRequested, requestedMemory);
+        if ((requestedMemory < 512 * 1024) || (requestedMemory > 1500 * 1024))
+            {
+            _LIT( KResult ,"requestedMemory incorrect");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }		
+    
+        if (err == KErrNone)
+            {
+            // Check that the higher priority V2 plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3D incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test simple prioritisation of application plugins
+// Start two target applications
+// Configure all plugins to consume 0.5MB
+// Simulate a low memory event
+// Some of the low priority app plugins with those target applications should be called
+// The highest priority app with that target application should not be called (the lower priority plugins should free enough memory)
+TInt COomTestHarness::AppPluginTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp2Uid, 0);
+	StartApplicationL(KOomTestApp3Uid, 0);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+
+    TInt err = KErrNone;
+    
+    // Check that all of the apps are running
+    err = AppIsRunning(KOomTestApp2Uid, ETrue);
+    if (err != KErrNone)
+        {
+        _LIT( KResult ,"app KOomTestApp2Uid not running");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // Case was executed but failed
+        }
+    
+    if (err == KErrNone)
+        {
+        err = AppIsRunning(KOomTestApp3Uid, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"app KOomTestApp3Uid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {	
+        err = AppIsRunning(KOomTestAppUid, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"app KOomTestAppUid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+
+    // Now eat some memory till we are below treshhold and wait for the memory monitor to bring us above treshhold again
+    TInt memTestState = ETestInit;
+    
+    if (err == KErrNone)
+        {	
+        BringAppToForeground(KOomTestAppUid);
+        
+        //start watchers
+        StartMemoryMonitorStatusWatcher(memTestState);
+        
+        // Go just under the low memory threshold
+        EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+        //start timer, start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        
+        // fail tests if watchers failed or memory was not freed
+        if (memTestState != ETestAbove)
+            {
+            _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // case was not executed or case was executed but never finished or failed 
+            //if memteststate is not desired signal to other cases that they should not pass
+            if (err == KErrNone)
+                {
+                err = KErrGeneral;
+                }
+            }
+        }
+    
+    // Check plugins for memory free calls
+    // The following application plugins should be called...
+    // Application plugins: 10286A3A 10286A3B
+    if (err == KErrNone)
+        {
+        err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A3A FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {	
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A3B FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        // The following plugin should not be called because other plugins (including some unchecked system plugins) have freed enough memory
+        // 10286A38
+        err = PluginFreeRamCalledL(0x10286A38, EFalse);	
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A38 FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+// Test simple prioritisation of application plugins
+// Start two target applications
+// Configure all plugins to consume 0.5MB
+// The app plugin with the highest priority is configured to be assigned the lowest priority after an idle time
+// Wait until the idle time rule applies
+// Simulate a low memory event
+// The plugin that initially had the highest priority (but now has the lowest priority) should be called
+// Note that this test should be the same as AppPluginTest1L with the addition of the idle period
+TInt COomTestHarness::AppPluginIdleTimeTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp2Uid, 0);
+	StartApplicationL(KOomTestApp3Uid, 0);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	User::After(KOomTestFirstIdlePeriod);
+	
+   //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        // The following application plugins should be called...
+        // Application plugins: 10286A3A 10286A3B
+        
+        err = PluginFreeRamCalledL(0x10286A3A, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A3A FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {	
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3B FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {	
+            // The following plugin should also be called (its priority was initially too high but has been reduced after the idle time)
+            // 10286A38
+            err = PluginFreeRamCalledL(0x10286A38, ETrue);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A38 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+    ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test the optional allocation mechanism
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 12MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required memory
+TInt COomTestHarness::OptionalAllocationTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 12MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 12 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+
+   // Go just above the good memory threshold
+    EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+	    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    TInt bytesAvailable;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 10 * 1024 * 1024, 0x10286A37, bytesAvailable);
+    
+    if(err == KErrNone)
+        {
+        //start timer, start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        // Check that all system plugins below P8 have been called
+        if (err == KErrNone)
+            {		
+            err = PluginFreeRamCalledL(0x10286A34, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A34 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A35 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }		
+            }
+        
+        if (err == KErrNone)
+            {	
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A36 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A37 FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {	
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"low prioirity app 0x10286A3B not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 app KOomTestApp3Uid not closed");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else 
+        {
+        _LIT( KResult ,"RequestOptionalRam failed or Memory Still Below Treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 5MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required minimum amount memory
+// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+TInt COomTestHarness::OptionalAllocationTest2L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 5 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+
+	// Go just above the good memory threshold
+    EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    // Say that 5MB is the minimum we need
+    TInt bytesAvailable;
+    err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+
+    if(err == KErrNone)
+        {
+        //start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        if (err == KErrNone)
+            {			
+            // Check that the reported bytes available is > 3MB and < 7MB
+            if ((bytesAvailable < 3 * 1024 * 1024)
+                    || (bytesAvailable > 7 * 1024 * 1024))
+                {
+                _LIT( KResult ,"reported bytes not > 3MB and < 7MB");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        // Check that all system plugins below P8 have been called
+    
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A34, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A34 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A35 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A36 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A37 FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A3B FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 app KOomTestApp3Uid not closed");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"RequestOptionalRam failed or Memory Still Below Treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 3MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed but it won't free enough memory
+// The optional allocation should fail with KErrNoMemory
+TInt COomTestHarness::OptionalAllocationTest3L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 3 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+
+    // Go just above the good memory threshold
+    EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    // Say that 5MB is the minimum we need
+    TInt bytesAvailable;
+    err = iOomSession.RequestOptionalRam(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+    // We expect an error because it has not been possible to free the minimum memory
+    if (err == KErrNoMemory)
+        {
+        err = KErrNone;
+        }
+    
+    if(err == KErrNone)
+        {
+        //start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {      
+        // Check that all system plugins below P8 have been called
+    
+        if (err == KErrNone)
+            {		
+            err = PluginFreeRamCalledL(0x10286A34, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A34 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A35 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A36 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A37 FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"Plugin 0x10286A3B FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {			
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 App KOomTestApp3Uid not closed");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"RequestOptionalRam failed or Memory Still Below Treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test that force priority check applies (only) to selected priorities
+// Setup three plugins (priorities 7, 8 & 9)to eat 5MB each
+// The configuration file should force a check after priority 8
+// Drop just under the low threshold
+// Plugins P7 & P8 should be called (P8 is called even though the P7 plugin freed enough memory)
+// Plugin P9 should not be called because enou
+TInt COomTestHarness::ForcePriorityCheck1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure the P7, P8 and P9 plugins to eat 5MB each:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A36), 0, 0x300000, 0x300000)); // P7
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A37), 0, 0x300000, 0x300000)); // P8
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3D), 0, 0x300000, 0x300000)); // P9
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+    
+    //start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        
+        // The P7 plugin should have been called and is the first to release RAM
+        err = PluginFreeRamCalledL(0x10286A36, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P7 Plugin 0x10286A36 FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {		
+            // The P8 plugin should be called even though the P7 plugin has already released enough memory because the plugin runs in continue mode and there is no forced check
+            err = PluginFreeRamCalledL(0x10286A37, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P8 Plugin 0x10286A37 FreeRam not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {		
+            // The P9 plugin should not be called because of the force priority check (the P7 & P8 plugins have already released plenty of RAM)
+            err = PluginFreeRamCalledL(0x10286A3D, EFalse);	
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P9 Plugin 0x10286A3D FreeRam incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+// Test the Busy API on the OOM server
+// Start three applications
+// Ensure that the lowest priority app is not in the foreground
+// Call the busy API on the OOM monitor for the lowest priority app
+// Simulate a low memory event by going just under the low threshold
+// The busy application should not be closed
+// The other (non-foreground) application should be closed
+TInt COomTestHarness::BusyApplicationTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp2Uid, 0);
+	StartApplicationL(KOomTestAppUid, 0);
+	StartApplicationL(KOomTestApp3Uid, 0); // Lowest priority app
+	
+	BringAppToForeground(KOomTestAppUid); // TODO: this doesn't seem to be working - message not getting through to the dummy application
+	
+	Settle();
+	
+	// Send the second app a message to make itself busy
+	TInt id = iApps.Find<TUid>(TUid::Uid(KOomTestApp3Uid), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->SendMessage(KOomDummyAppSetBusy);
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        
+        // The first four system plugins should have been closed, releasing the required memory
+        // All four plugins should be called, even though the first two will release enough memory (this is because
+        // plugins are always run in continue mode)
+        
+        // Check that the busy application is still running
+        err = AppIsRunning(KOomTestApp3Uid, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P7 App KOomTestApp3Uid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {
+            // Check that the higher priority but non-busy application has been close
+            err = AppIsRunning(KOomTestApp2Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 App KOomTestApp2Uid not closed");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test the NotBusy API on the OOM server
+// Start three applications
+// Ensure that the lowest priority app is not in the foreground
+// Call the busy API on the OOM monitor for the lowest priority app
+// Then call the not-busy API on the OOM monitor for the lowest priority app
+// Simulate a low memory event by going just under the low threshold
+// The lowest priority app should be closed (because it is no longer busy)
+TInt COomTestHarness::NormalPriorityApplicationTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp2Uid, 0);
+	StartApplicationL(KOomTestApp3Uid, 0); // Lowest priority app
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	Settle();
+	
+	// Send the second app a message to make itself busy
+	TInt id = iApps.Find<TUid>(TUid::Uid(KOomTestApp3Uid), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	// TODO: temp removed - needs to be put back
+//	iApps[id]->SendMessage(KOomDummyAppSetBusy);
+	
+	// Send the second app a message to make itself normal priority
+	id = iApps.Find<TUid>(TUid::Uid(KOomTestApp3Uid), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->SendMessage(KOomDummyAppSetNormalPriority);
+
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        
+        // The first four system plugins should have been closed, releasing the required memory
+        // All four plugins should be called, even though the first two will release enough memory (this is because
+        // plugins are always run in continue mode)
+        
+        // Check that the no-longer-busy application has been closed
+        err = AppIsRunning(KOomTestApp3Uid, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"App KOomTestApp3Uid not closed");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+// Start three applications
+// One is set to NEVER_CLOSE, one is low priority, one is a dummy app to ensure that the first two are not in the foreground
+// Configure applications not to release any memory
+// Go just significantly under the low memory threshold
+// Wait for the system to recover, if we have moved above the low memory threshold then go significantly under it again. Repeat this step until we no longer go above low.
+// Check that the low priority application is closed
+// Check that the NEVER_CLOSE application is not closed (even though we're still below the low theshold)
+TInt COomTestHarness::NeverCloseTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start the two target applications (plus a third so that the target apps are not in the foreground)
+	StartApplicationL(KOomTestApp3Uid, 0); // Lowest priority app
+	StartApplicationL(KOomTestApp7Uid, 0); // NEVER_CLOSE application
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    TInt attemps = 10;
+    
+    while (memTestState != ETestBelow && attemps > 0)
+        {
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+    // eat memory
+        EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+
+    //start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+        attemps--;
+        }
+
+    if (err == KErrNone && memTestState == ETestBelow)
+        {
+        
+        // The NEVER_CLOSE app should still be running (even though we are still below the low threshold)
+        err = AppIsRunning(KOomTestApp7Uid, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"NEVER_CLOSE app KOomTestApp7Uid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {	
+            // The low priority app should still be closed (even though we are still below the low threshold)
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"low priority app KOomTestApp3Uid incorrectly running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {        
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Incorrectly Above Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+
+
+// Test that sync mode configuration is working for system plugins
+// Configure three system plugins to release 5MB of memory each.
+// The plugins are configured as follows
+// Plugin 1: Priority 7, sync mode continue
+// Plugin 2: Priority 8, sync mode check
+// Plugin 3: Priority 9, sync mode continue
+// Drop just under the low threshold
+// Plugins 1 & 2 should be called (even though plugin 1 alone has freed enough RAM)
+// Plugin 3 won't be called because the check on the priority 8 plugin discovers that enough RAM has been freed
+TInt COomTestHarness::PluginSyncModeTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Configure three plugins to eat 5MB each:
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A36), 0, 0x300000, 0x300000));
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A37), 0, 0x300000, 0x300000));
+	User::LeaveIfError(iAllocServer.Configure(TUid::Uid(0x10286A3D), 0, 0x300000, 0x300000));
+	
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+	
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+        
+        // The first four system plugins should have been run, releasing the required memory
+        // All four plugins should be called, even though the first two will release enough memory (this is because
+        // plugins are always run in continue mode)
+        
+        // Check that the first two plugins have been called, but not the third
+        err = PluginFreeRamCalledL(0x10286A36, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A36 Free Ram not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {		
+            err = PluginFreeRamCalledL(0x10286A37, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A37 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3D Free Ram incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+
+// Test the optional allocation mechanism
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 12MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required memory
+TInt COomTestHarness::OptionalAllocationAsyncTest1L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 12MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 12 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone; 
+    TInt bytesAvailable;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 10 * 1024 * 1024, 0x10286A37, bytesAvailable);
+
+    if (err == KErrNone)
+        {
+        //start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {        
+        // Check that all system plugins below P8 have been called
+        
+        err = PluginFreeRamCalledL(0x10286A34, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A34 Free Ram not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+    
+        if (err == KErrNone)
+            {		
+            err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A35 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {	
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A36 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A37 Free Ram incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3B Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 App KOomTestApp3Uid incorrectly running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"RequestOptionalRam failed or Memory Still Below Treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - successful request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 5MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed freeing the required minimum amount memory
+// The returned available memory should be about 5MB ( > 3MB and < 7MB )
+TInt COomTestHarness::OptionalAllocationAsyncTest2L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 5 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+	//start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    TInt bytesAvailable;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+  
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    // Say that 5MB is the minimum we need
+    err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);  
+
+    if (err == KErrNone)
+        {
+        //start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {    
+        if (err == KErrNone)
+            {
+            // Check that the reported bytes available is > 3MB and < 7MB
+            if ((bytesAvailable < 3 * 1024 * 1024)
+                    || (bytesAvailable > 7 * 1024 * 1024))
+                {
+                _LIT( KResult ,"bytesAvailable not ( > 3MB and < 7MB )");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {		
+            // Check that all system plugins below P8 have been called
+            
+            err = PluginFreeRamCalledL(0x10286A34, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A34 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A35 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A36 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A37 Free Ram incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3B Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 App KOomTestApp3Uid incorrectly running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"RequestOptionalRam failed or Memory Still Below Treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+// Test the optional allocation mechanism - minimum requested RAM behaviour - failed request
+// Configure the plugins not to release any RAM when FreeRam is called
+// Configure one priority 7 application to release 3MB when FreeRam is called
+// Start this application (plus another one so it isn't in the foreground)
+// Drop just above the good memory level
+// Request an optional allocation of 10MB (5MB minimum) referencing a priority 8 plugin
+// All of the plugins below P8 should be called
+// The P7 application should be closed but it won't free enough memory
+// The optional allocation should fail with KErrNoMemory
+TInt COomTestHarness::OptionalAllocationAsyncTest3L(TTestResult& aResult)
+	{
+	ResetL();
+	
+	// Start an application (plus a second so that the first app is not in the foreground)
+	// The first application is set to consume 5MB of RAM
+	StartApplicationL(KOomTestApp3Uid, 3 * 1024);
+	StartApplicationL(KOomTestAppUid, 0);
+	
+	BringAppToForeground(KOomTestAppUid);
+	
+	// Go just above the good memory threshold
+	EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Request 10 MB of data, using the priority of the referenced plugin (constant priority 8)
+    // Say that 5MB is the minimum we need
+    TInt bytesAvailable;
+       
+    err = RequestOptionalRamASyncWrapper(10 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+    // We expect an error because it has not been possible to free the minimum memory
+    if(err == KErrNoMemory)
+        {
+        err = KErrNone;
+        }
+
+    if (err == KErrNone)
+        {
+        //start scheduler & stop watchers when done
+        StartTimerAndRunWatcher(memTestState);
+        }
+
+    if (err == KErrNone && memTestState == ETestAbove)
+        {
+
+        if (err == KErrNone)
+            {	
+            // Check that all system plugins below P8 have been called
+            
+            err = PluginFreeRamCalledL(0x10286A34, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A34 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A35, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A35 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            err = PluginFreeRamCalledL(0x10286A36, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A36 Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {				
+            // This the P8 system plugin has not been called
+            err = PluginFreeRamCalledL(0x10286A37, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A37 Free Ram incorrectly called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            // Check that the low priority app plugin has been called
+            err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"plugin 0x10286A3B Free Ram not called");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+    
+        if (err == KErrNone)
+            {			
+            // Check that the P7 application has been closed
+            err = AppIsRunning(KOomTestApp3Uid, EFalse);
+            if (err != KErrNone)
+                {
+                _LIT( KResult ,"P7 App KOomTestApp3Uid incorrectly running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"minimum memory unexpectedly freed or still below treshhold or could not start watchers");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // Case was executed but failed
+        }
+    
+	ResetL();    
+    return KErrNone;	
+	}
+
+
+
+
+
+
+
+void COomTestHarness::BringAppToForeground(TInt32 aUid)
+	{
+	//bring app to foreground
+	TInt id = iApps.Find<TUid>(TUid::Uid(aUid), CCDummyApplicationHandle::CompareTo);
+	User::LeaveIfError(id);
+	iApps[id]->BringToForeground();
+	User::After(TTimeIntervalMicroSeconds32(KSettlingTime));
+	}
+
+
+void COomTestHarness::ResetL()
+	{
+	Settle();
+	
+	// Close any dummy apps
+	iApps.ResetAndDestroy();
+	
+	Settle();
+
+	// Free all memory being eaten by the server
+	iChunk.Adjust(KOomHarnessInitialEatenMemory); // Just eat 1K of memory initially, this can grow later
+	iChunkSize = KOomHarnessInitialEatenMemory;
+	
+	iDummyChunk.Close();
+	iDummyChunkSize = 0;
+	
+	User::LeaveIfError(iAllocServer.Reset());
+	
+	// Wait for the system to settle before getting the call counts (freeing the memory could cause some more movement).
+	Settle();
+	
+	// Update the call counts on the plugins (add them if they're not there already)
+	for (TInt pluginUid = KUidOOMDummyPluginFirstImplementation; pluginUid <= KUidOOMDummyPluginLastImplementation; pluginUid++)
+		{
+		TInt lowMemoryCount = 0;
+		RProperty::Get(KUidOomPropertyCategory, pluginUid + KOOMDummyPluginLowMemoryCount, lowMemoryCount);
+
+		TInt goodMemoryCallCount = 0;
+		RProperty::Get(KUidOomPropertyCategory, pluginUid + KOOMDummyPluginGoodMemoryCount, goodMemoryCallCount);
+		
+		TPluginCallCount pluginCallCount;
+		pluginCallCount.iFreeRamCallCount = lowMemoryCount;
+		pluginCallCount.iMemoryGoodCallCount = goodMemoryCallCount;
+		
+		iPluginCallCounts.InsertL(pluginUid, pluginCallCount);
+		};
+	} 
+
+void COomTestHarness::EatMemoryL(TInt aKBytesToLeaveFree)
+	{
+	Settle();
+	
+    TMemoryInfoV1Buf meminfo;
+    UserHal::MemoryInfo(meminfo);
+    TInt freeMem = meminfo().iFreeRamInBytes;
+
+    // Resize the dummy chunk to consume the correct ammount of memory
+	iChunkSize = freeMem + iChunkSize - (aKBytesToLeaveFree * 1024);
+	
+	if( iChunkSize > KOomHarnessMaxEatenMemory)
+	    {
+	    TInt dummy = (iChunkSize - KOomHarnessMaxEatenMemory)+ 2*1024*1024;
+	    /*
+	    if(dummy > (2 *1024 * 1024))
+	        {
+	        //User::LeaveIfError(iDummyChunk.CreateLocal(KOomHarnessInitialEatenMemory, ((dummy-(2*1024*1024)));
+	        dummy = dummy - 2*1024*1024;
+	        }
+	    */
+	    User::LeaveIfError(iDummyChunk.CreateLocal(KOomHarnessInitialEatenMemory, dummy));
+	    iDummyChunkSize = KOomHarnessInitialEatenMemory;
+	    TInt err1 = iDummyChunk.Adjust(dummy-1024);	
+	    UserHal::MemoryInfo(meminfo);
+	    freeMem = meminfo().iFreeRamInBytes;
+	    iChunkSize = freeMem + KOomHarnessInitialEatenMemory - (aKBytesToLeaveFree * 1024);
+	    }
+	    
+	    
+	TInt err = iChunk.Adjust(iChunkSize);
+	User::LeaveIfError(err);
+	}
+
+void COomTestHarness::AllocateMemoryL(TInt aKBytes)
+    {
+    TInt err = iChunk.Allocate(aKBytes * 1024);
+    User::LeaveIfError(err);    
+    }
+
+// Set up the plugins and applications - this is the starting point for many test cases
+// 5 applications are started with approx 0.5 MB used for each
+// 0.5MB (approx) of memory is reserved for each one of the plugins
+void COomTestHarness::CommonSetUpL()
+	{
+	// Configure the plugins to eat 0.5MB each:
+	for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation; pluginIndex++)
+		{
+		User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+		}
+	}
+	
+void COomTestHarness::StartApplicationL(TInt32 aUid, TInt aInitialAllocationInKBs)
+	{
+	User::ResetInactivityTime();
+	CCDummyApplicationHandle *app = CCDummyApplicationHandle::NewLC(TUid::Uid(aUid), aInitialAllocationInKBs * 1024);
+	iApps.AppendL(app);
+	CleanupStack::Pop(app);
+	Settle();
+	}
+
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::AppIsRunning(TInt32 aUid, TBool aExpectedResult)
+	{
+	TBool appRunning = ETrue;
+	
+	TInt id = iApps.Find<TUid>(TUid::Uid(aUid), CCDummyApplicationHandle::CompareTo);
+	if (id < 0)
+		appRunning = EFalse;
+	else if(iApps[id]->Process().ExitType() != EExitPending)
+		appRunning = EFalse;
+	
+	TInt err = KErrNone;
+	
+	if (aExpectedResult != appRunning)
+		err = KErrGeneral;
+	
+	if (aExpectedResult != appRunning)
+		{
+		err = KErrGeneral;
+		}	
+	
+	return err;
+	}
+
+// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::PluginFreeRamCalledL(TInt32 aUid, TBool aExpectedResult)
+	{
+	TInt newLowMemoryCount = 0;
+	TInt err = RProperty::Get(KUidOomPropertyCategory, aUid + KOOMDummyPluginLowMemoryCount, newLowMemoryCount);
+
+	//handle error?
+	
+	TBool freeRamHasBeenCalledOnPlugin = EFalse;
+	TPluginCallCount* pluginCallCount = iPluginCallCounts.Find(aUid);
+	
+	if (pluginCallCount)
+		{
+		freeRamHasBeenCalledOnPlugin = (pluginCallCount->iFreeRamCallCount != newLowMemoryCount);
+		
+		if (freeRamHasBeenCalledOnPlugin)
+			{
+			// Update the list of old counts with the current value so we can see if it has changed next time this function is called
+			pluginCallCount->iFreeRamCallCount = newLowMemoryCount;
+			iPluginCallCounts.InsertL(aUid, *pluginCallCount);
+			}
+		}
+	else
+		{
+		err = KErrNotFound;
+		}
+		
+	if (aExpectedResult != freeRamHasBeenCalledOnPlugin)
+		{
+		err = KErrGeneral;
+		}
+	
+	return err;
+	}
+
+// Has FreeRam been called on this plugin since the last call to this function (or since the whole class has been reset)?
+// Returns KErrNone if we get the expected result
+TInt COomTestHarness::PluginMemoryGoodCalledL(TInt32 aUid, TBool aExpectedResult)
+	{
+	TInt newGoodMemoryCount = 0;
+	RProperty::Get(KUidOomPropertyCategory, aUid + KOOMDummyPluginGoodMemoryCount, newGoodMemoryCount);
+
+	TBool memoryGoodHasBeenCalledOnPlugin = EFalse;
+	TPluginCallCount* pluginCallCount = iPluginCallCounts.Find(aUid);
+	
+	if (pluginCallCount)
+		{
+		memoryGoodHasBeenCalledOnPlugin = (pluginCallCount->iMemoryGoodCallCount != newGoodMemoryCount);
+		
+		if (memoryGoodHasBeenCalledOnPlugin)
+			{
+			// Update the list of old counts with the current value so we can see if it has changed next time this function is called
+			pluginCallCount->iMemoryGoodCallCount = newGoodMemoryCount;
+			iPluginCallCounts.InsertL(aUid, *pluginCallCount);
+			}
+		}
+	
+	TInt err = KErrNone;
+	
+	if (aExpectedResult != memoryGoodHasBeenCalledOnPlugin)
+		err = KErrGeneral;
+	
+	return err;
+	}
+
+// Utility function which calls the async version of optional RAM request and makes it behave like the sync version
+TInt COomTestHarness::RequestOptionalRamASyncWrapper(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable)
+	{
+	TInt err = KErrNone;
+	TRequestStatus status;
+	iOomSession.RequestOptionalRam(aBytesRequested, aMinimumBytesNeeded, aPluginId, status);
+	User::WaitForRequest(status);
+	
+	if (status.Int() < 0)
+		err = status.Int();
+	else
+		aBytesAvailable = status.Int();
+	
+	return err;
+	}
+
+void COomTestHarness::StartMemoryMonitorStatusWatcher(TInt& aTestState)
+    {
+    iStatusWatcher->Start(&aTestState);
+    }
+
+void COomTestHarness::StartTimerAndRunWatcher(TInt& aTestState)
+    {
+    //start timer
+    iTimeoutWatcher->Start(&aTestState, KTimeout);
+    
+    //start active scheduler to catch mem monitor status changes
+    CActiveScheduler::Start();
+    
+    //One of the active objects has fired. Cancelling all pending requests
+    iStatusWatcher->Cancel();
+    iTimeoutWatcher->Cancel();
+    }
+
+TInt COomTestHarness::GetFreeMemory()
+	{
+	User::CompressAllHeaps();
+	
+	TInt current = 0;
+	HAL::Get( HALData::EMemoryRAMFree, current );
+	
+	return current;
+	}
+
+
+CMemoryMonitorStatusWatcher* CMemoryMonitorStatusWatcher::NewL()
+    {
+    CMemoryMonitorStatusWatcher* self = new (ELeave) CMemoryMonitorStatusWatcher();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+CMemoryMonitorStatusWatcher::~CMemoryMonitorStatusWatcher()
+    {
+    Cancel();
+    iMonitorProperty.Close();
+    }
+
+void CMemoryMonitorStatusWatcher::Start(TInt* aTestState)
+    {
+    iMonitorProperty.Subscribe(iStatus);
+    SetActive();
+
+    iTestState = aTestState;
+    }
+
+CMemoryMonitorStatusWatcher::CMemoryMonitorStatusWatcher() : CActive(CActive::EPriorityStandard)
+    {
+    }
+
+void CMemoryMonitorStatusWatcher::ConstructL()
+    {
+    CActiveScheduler::Add(this); // Add to scheduler
+    User::LeaveIfError(iMonitorProperty.Attach(KOomMemoryMonitorStatusPropertyCategory, KOomMemoryMonitorStatusPropertyKey));
+    }
+
+void CMemoryMonitorStatusWatcher::DoCancel()
+    {
+    iMonitorProperty.Cancel();
+    }
+
+void CMemoryMonitorStatusWatcher::RunL()
+    {
+    iMonitorProperty.Subscribe(iStatus);
+    SetActive();
+    
+    TInt monitorState = EFreeingMemory;
+    User::LeaveIfError(iMonitorProperty.Get(monitorState));
+    
+    if (monitorState != EFreeingMemory)
+        {
+        //Do not reschedule - signal client that request has completed
+        Cancel();
+        if(monitorState == EBelowTreshHold)
+            {
+            *iTestState = ETestBelow;
+            }
+        else
+            {
+            *iTestState = ETestAbove;
+            }
+        CActiveScheduler::Stop();
+        }
+    }
+
+CMemoryMonitorTimeoutWatcher* CMemoryMonitorTimeoutWatcher::NewL()
+    {
+    CMemoryMonitorTimeoutWatcher* self = new (ELeave) CMemoryMonitorTimeoutWatcher();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+CMemoryMonitorTimeoutWatcher::~CMemoryMonitorTimeoutWatcher()
+    {
+    Cancel();
+    }
+
+void CMemoryMonitorTimeoutWatcher::Start(TInt* aTestState, const TTimeIntervalMicroSeconds32& aTimeout)
+    {
+    iTestState = aTestState;
+    After(aTimeout);
+    }
+
+void CMemoryMonitorTimeoutWatcher::ConstructL()
+    {
+    CTimer::ConstructL();
+    CActiveScheduler::Add(this); // Add to scheduler
+    }
+
+CMemoryMonitorTimeoutWatcher::CMemoryMonitorTimeoutWatcher() : CTimer(CActive::EPriorityStandard)
+    {
+    }
+
+void CMemoryMonitorTimeoutWatcher::DoCancel()
+    {
+    CTimer::DoCancel();
+    }
+
+void CMemoryMonitorTimeoutWatcher::RunL()
+    {
+    Cancel();
+    *iTestState = ETestTimeout;
+    CActiveScheduler::Stop();
+    }
+
+////////
+
+CAsyncRequester* CAsyncRequester::NewL(RChunk aChunk, TInt aChunkSize)
+    {
+    CAsyncRequester* self = new (ELeave) CAsyncRequester(aChunk, aChunkSize);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+CAsyncRequester::~CAsyncRequester()
+    {
+    Cancel();
+    iSession.Close();
+    }
+
+void CAsyncRequester::Start(TInt aBytesToRequest, TReturnStatus* aReturnStatus)
+    {
+    iReturnStatus = aReturnStatus;
+    //Request 2.8MB which will close KOomTestApp3Uid
+    iSession.RequestOptionalRam(aBytesToRequest, 0, 0x10286A3D, iStatus);
+    SetActive();
+    }
+
+void CAsyncRequester::ConstructL()
+    {
+    User::LeaveIfError(iSession.Connect());    
+    CActiveScheduler::Add(this); // Add to scheduler
+    }
+
+CAsyncRequester::CAsyncRequester(RChunk aChunk, TInt aChunkSize) 
+    : CActive(CActive::EPriorityStandard),
+    iChunk(aChunk),
+    iChunkSize(aChunkSize)
+    {
+    }
+
+void CAsyncRequester::DoCancel()
+    {
+    }
+
+void CAsyncRequester::RunL()
+    {
+    iReturnStatus->iCompleted = ETrue;
+    iReturnStatus->iReturnStatus = iStatus.Int();
+    if (iReturnStatus->iId == 1)
+        {
+        TMemoryInfoV1Buf meminfo;
+        UserHal::MemoryInfo(meminfo);
+        TInt freeMem = meminfo().iFreeRamInBytes;
+
+        // Resize the dummy chunk to consume the correct ammount of memory
+        iChunkSize = freeMem + iChunkSize - (KOomJustAboveGoodMemoryThreshold * 1024);
+        TInt err = iChunk.Adjust(iChunkSize);
+        User::LeaveIfError(err);
+        }
+    else 
+        {
+        CActiveScheduler::Stop();
+        }
+    }
+
+/////////
+
+
+TInt COomTestHarness::AppCloseTwoSessionsL(TTestResult& aResult)
+    {
+    ResetL();
+    
+    StartApplicationL(KOomTestApp2Uid, 3 * 1024); // P8 app to be closed 
+    StartApplicationL(KOomTestAppUid, 3 * 1024);  // P9 app should not be closed
+    StartApplicationL(KOomTestApp3Uid, 3 * 1024); // P7 app to be closed 
+    StartApplicationL(KOomTestApp4Uid, 3 * 1024); // P7 app foreground should not be closed
+    
+    // Go just above the good memory threshold
+    EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+    
+    Settle();
+    
+    TInt err = KErrNone;
+    CAsyncRequester* req1 = CAsyncRequester::NewL(iChunk, iChunkSize);
+    CleanupStack::PushL(req1);
+    CAsyncRequester* req2 = CAsyncRequester::NewL(iChunk, iChunkSize);
+    CleanupStack::PushL(req2);
+    TReturnStatus status1;
+    status1.iId = 1;
+    TReturnStatus status2;
+    status2.iId = 2;
+    
+    TInt memTestState = ETestInit;
+    iTimeoutWatcher->Start(&memTestState, KTimeout);
+        
+    //This request should close KOomTestApp3Uid
+    //On return the active object will allocate the memory it requested
+    req1->Start(3 * 1024 * 1024, &status1);
+
+    //The second request should be queued until the first request has completed, there will then be
+    //a pause for the memory to be allocated before the request is properly serviced.
+    req2->Start(3 * 1024 * 1024, &status2);
+
+    CActiveScheduler::Start();
+
+    //The active scheduler is stopped, we should return here once both AOs have been completed.
+    iTimeoutWatcher->Cancel();
+    
+    if (memTestState == ETestTimeout)
+        {
+        err = KErrTimedOut;
+        _LIT( KResult ,"Test has timed out, requests have not been completed");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // Case was executed but failed
+        }                
+    if (err == KErrNone)
+        {   
+        err = AppIsRunning(KOomTestApp4Uid, ETrue); 
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Foreground App KOomTestApp4Uid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {   
+        err = AppIsRunning(KOomTestAppUid, ETrue); 
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P9 App KOomTestAppUid not running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {   
+        err = AppIsRunning(KOomTestApp3Uid, EFalse);  
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P7 App KOomTestApp3Uid incorrectly  running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {   
+        err = AppIsRunning(KOomTestApp2Uid, EFalse);  
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P7 App KOomTestApp2Uid incorrectly  running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+        }
+    
+    CleanupStack::PopAndDestroy(2);
+    ResetL();    
+    return KErrNone;        
+    }
+
+
+TInt COomTestHarness::CallIfTargetAppNotRunningTest1L(TTestResult& aResult)
+    {
+    ResetL();
+    
+    // Configure the plugins to eat 0.5MB each:
+    for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+        {
+        User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x80000, 0x80000));
+        }
+    
+    StartApplicationL(KOomTestApp3Uid, 0);
+    
+
+    TInt err = KErrNone;
+    
+    // Now eat some memory till we are below treshhold and wait for the memory monitor to bring us above treshhold again
+    TInt memTestState = ETestInit;
+    
+    //start watchers
+    StartMemoryMonitorStatusWatcher(memTestState);
+    
+    // Go just under the low memory threshold
+    EatMemoryL(KOomJustUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    // fail tests if watchers failed or memory was not freed
+    if (memTestState != ETestAbove)
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        //if memteststate is not desired signal to other cases that they should not pass
+        err = KErrGeneral;
+        }
+    
+    // The following application plugins should be called...
+    // Application plugins: 10286A3B
+    // The following application plugins should not be called...
+    // Application plugins: 10286A3A, 0x10286A38 
+    if (err == KErrNone)
+        {
+        //target app not running for this priority 3 app plugin
+        err = PluginFreeRamCalledL(0x10286A3A, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A3A FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {   
+        //target app is running for this priority 4 app plugin
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A3B FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    //By the time we get to this priority 9 plugin, the app plugins and other sys plugins 
+    // have freed enough memory and a sys plugin with "check ram" has been called
+    if (err == KErrNone)
+        {
+        err = PluginFreeRamCalledL(0x10286A38, EFalse); 
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin 0x10286A38 FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+        }
+    
+    ResetL();
+    return KErrNone;    
+    }
+
+//Test that an app that has an app_specific_thresholds but no close_app can still be closed
+//
+//This test only works on emulator. On hw there are many more apps started which have default priority 
+//and these are closed before KOomTestApp8Uid as they are behind it in the z order, freeing sufficient memory
+//before we would get to KOomTestApp8Uid
+TInt COomTestHarness::AppCloseSpecificThresholdTest1L(TTestResult& aResult)
+    {
+    ResetL();
+    
+    StartApplicationL(KOomTestApp8Uid, 5 * 1024); // app with app_specific_thresholds but no close_app
+    StartApplicationL(KOomTestApp3Uid, 0); // P7 foreground app. Will not be closed
+    
+    BringAppToForeground(KOomTestApp3Uid);
+    
+    //start watchers
+    TInt memTestState = ETestInit;
+    TInt err = KErrNone;
+    
+    StartMemoryMonitorStatusWatcher(memTestState);
+
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomSignificantlyUnderLowMemoryThreshold);
+
+    //start timer, start scheduler & stop watchers when done
+    StartTimerAndRunWatcher(memTestState);
+    
+    if (memTestState == ETestAbove)
+        {
+        err = AppIsRunning(KOomTestApp8Uid, EFalse);
+        
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"P8 App KOomTestApp2Uid incorrectly running");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+           // Case was executed but failed
+            }
+        if (err == KErrNone)
+            {   
+            err = AppIsRunning(KOomTestApp3Uid, ETrue); 
+            if (err != KErrNone)
+                {
+                // The P7 app should still be running because it was in the foreground
+                _LIT( KResult ,"(P7 App KOomTestApp3Uid not running");
+                aResult.iResultDes.Copy( KResult );
+                aResult.iResult = KErrGeneral;
+                // Case was executed but failed
+                }
+            }
+        if (err == KErrNone)
+            {
+            _LIT( KDescription , "Test case passed");
+            aResult.SetResult( KErrNone, KDescription );
+            }
+        }
+    else
+        {
+        _LIT( KResult ,"Watchers failed to start or Application Timeout or Memory Still Below Treshhold ");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // case was not executed or case was executed but never finished or failed 
+        }
+    
+    ResetL();    
+    return KErrNone;        
+    }
+
+TInt COomTestHarness::PluginTestInsufficientMemoryFreedL(TTestResult& aResult)
+    {
+    ResetL();
+    
+    // Configure the plugins to eat 1kB each:
+    for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+        {
+        User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x400, 0x400));
+        }
+    
+    //start watchers
+    TInt err = KErrNone;
+    TInt bytesAvailable;
+    
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomJustAboveGoodMemoryThreshold);
+
+    // Request 5 MB of data, using the priority of the referenced plugin (constant priority 8)
+    err = iOomSession.RequestOptionalRam(5 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+   
+    // There should be nothing that can be done to free this memory
+    if (err == KErrNoMemory)
+        {
+        err = KErrNone;
+        }
+    else    
+        {
+        _LIT( KResult ,"There should not have been actions available to successfully complete request");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // Case was executed but failed
+        }
+    
+    //Check a couple of plugins that should have been called
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A36, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A36 FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3B FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    // This plugin should not be called as it is priority 9
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3D FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }   
+    //This plugins should not be called as the target app is not running
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3A, EFalse);  
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3A FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+
+    // MemoryGood should have been called on all plugins which were run as the request to 
+    // go below memory was triggered by an optional RAM request
+    if (err == KErrNone)
+        {                   
+        err = PluginMemoryGoodCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A3B MemoryGood not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+        
+    if (err == KErrNone)
+        {                   
+        err = PluginMemoryGoodCalledL(0x10286A3C, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A3C MemoryGood not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {                   
+        // MemoryGood should not be called on this plugin because FreeMemory was never called on it
+        err = PluginMemoryGoodCalledL(0x10286A37, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A37 MemoryGood incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+        }
+
+    ResetL();    
+    return KErrNone;        
+    }
+
+TInt COomTestHarness::PluginTestInsufficientMemoryFreed2L(TTestResult& aResult)
+    {
+    ResetL();
+    
+    // Configure the plugins to eat 1kB each:
+    for (TInt pluginIndex = KUidOOMDummyPluginFirstImplementation; pluginIndex <= KUidOOMDummyPluginLastImplementation - 2; pluginIndex++)
+        {
+        User::LeaveIfError(iAllocServer.Configure(TUid::Uid(pluginIndex), 0, 0x400, 0x400));
+        }
+    
+    //start watchers
+    TInt err = KErrNone;
+    TInt bytesAvailable;
+    
+    // Go significantly under the low memory threshold
+    EatMemoryL(KOomBetweenLowAndGoodThresholds);
+
+    // Request 5 MB of data, using the priority of the referenced plugin (constant priority 8)
+    err = iOomSession.RequestOptionalRam(5 * 1024 * 1024, 5 * 1024 * 1024, 0x10286A37, bytesAvailable);
+   
+    // There should be nothing that can be done to free this memory
+    if (err == KErrNoMemory)
+        {
+        err = KErrNone;
+        }
+    else    
+        {
+        _LIT( KResult ,"There should not have been actions available to successfully complete request");
+        aResult.iResultDes.Copy( KResult );
+        aResult.iResult = KErrGeneral;
+        // Case was executed but failed
+        }
+    
+    //Check a couple of plugins that should have been called
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A36, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A36 FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3B FreeRam not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    // This plugin should not be called as it is priority 9
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3D, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3D FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }   
+    //This plugins should not be called as the target app is not running
+    if (err == KErrNone)
+        {   
+        err = PluginFreeRamCalledL(0x10286A3A, EFalse);  
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"Plugin 0x10286A3A FreeRam incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+
+    // MemoryGood should have been called on all plugins which were run as the request to 
+    // go below memory was triggered by an optional RAM request
+    if (err == KErrNone)
+        {                   
+        err = PluginMemoryGoodCalledL(0x10286A3B, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A3B MemoryGood not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+        
+    if (err == KErrNone)
+        {                   
+        err = PluginMemoryGoodCalledL(0x10286A3C, ETrue);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A3C MemoryGood not called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {                   
+        // MemoryGood should not be called on this plugin because FreeMemory was never called on it
+        err = PluginMemoryGoodCalledL(0x10286A37, EFalse);
+        if (err != KErrNone)
+            {
+            _LIT( KResult ,"plugin  0x10286A37 MemoryGood incorrectly called");
+            aResult.iResultDes.Copy( KResult );
+            aResult.iResult = KErrGeneral;
+            // Case was executed but failed
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+        }
+
+    ResetL();    
+    return KErrNone;        
+    }
+
+// ================= OTHER EXPORTED FUNCTIONS =================================
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/data/t_oomtestapp.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+//  RESOURCE IDENTIFIER
+NAME T_OT // 4 letter ID
+
+//  INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include <commondialogs.hrh>
+#include <commondialogs.rh>
+#include "t_oomtestappcmd.hrh"
+
+//  RESOURCE DEFINITIONS
+RESOURCE RSS_SIGNATURE
+    {
+    }
+
+RESOURCE TBUF r_default_document_name
+	{
+	buf="T_OT";
+	}
+
+RESOURCE EIK_APP_INFO
+    {
+    menubar = r_menubar;
+    cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+    }
+
+RESOURCE MENU_BAR r_menubar
+    {
+    titles =
+        {
+        MENU_TITLE { menu_pane = r_menu; }
+        };
+    }
+
+RESOURCE MENU_PANE r_menu
+    {
+    items =
+        {
+        MENU_ITEM
+            {
+            command = EOomTestAppSelectConfig;
+            txt = "Select config xml";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppToggleSystem;
+            txt = "Toggle system";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppAllocMemory;
+            txt = "Alloc memory";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppFreeMemory;
+            txt = "Free memory";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppAllocMemWithPermission;
+            txt = "Alloc memory with permission";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppSetPriority;
+            cascade = r_priority_menu;
+            txt = "Set priority";
+            },
+        MENU_ITEM
+            {
+            command = EAknSoftkeyExit;
+            txt = "Exit";
+            }
+        };
+    }
+
+RESOURCE MENU_PANE r_priority_menu
+    {
+    items =
+        {
+        MENU_ITEM
+            {
+            command = EOomTestAppSetPriorityNormal;
+            txt = "Normal";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppSetPriorityHigh;
+            txt = "High";
+            },
+        MENU_ITEM
+            {
+            command = EOomTestAppSetPriorityBusy;
+            txt = "Busy";
+            }
+        };
+    }
+
+RESOURCE MEMORYSELECTIONDIALOG r_memory_selection
+    {
+    title = "";
+    softkey_1 = "Ok";
+    }
+
+RESOURCE FILESELECTIONDIALOG r_file_selection
+    {
+    title = "Select xml";
+    softkey_1_file = "Select";
+    softkey_1_folder = "Open";
+    softkey_2_root_level = "Cancel";
+    softkey_2_subfolder = "Back";
+    filters =
+        {
+        FILTER
+            {
+            filter_type = EFilenameFilter;
+            filter_style = EInclusiveFilter;
+            filter_data = { "*.xml" };
+            }
+        };
+    }
+
+RESOURCE DIALOG r_alloc_query
+     {
+     flags = EAknGeneralQueryFlags;
+     buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
+     items =
+         {
+         DLG_LINE
+             {
+             type = EAknCtQuery;
+             id = EGeneralQuery;
+             control = AVKON_DATA_QUERY
+                 {
+                 layout = ENumberLayout;
+                 label = "KBs to allocate";
+                 control = AVKON_INTEGER_EDWIN
+                     {
+                     maxlength=10;
+                     min = 0;
+                     max = 0x7fffffff; // KMaxTInt
+                     };
+                 };
+             }
+         };
+     }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/data/t_oomtestapp_reg.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <appinfo.rh>
+#include "t_oomtestapp.hrh"
+
+UID2 KUidAppRegistrationResourceFile
+UID3 T_OOM_TESTAPP_UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+    app_file = T_OOM_TESTAPP_NAME_STRING;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTMMPFILES
+t_oomtestapp.mmp
+t_oomtestapp2.mmp
+t_oomtestapp3.mmp
+t_oomtestapp4.mmp
+t_oomtestapp5.mmp
+t_oomtestapp6.mmp
+t_oomtestapp7.mmp
+t_oomtestapp8.mmp
+t_oomtestapp9.mmp
+t_oomtestapp10.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/oomtestapps.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,50 @@
+;Languages
+&EN
+
+#{"t_oomtestapps"},(0x101FB3E7),1,0,0,TYPE=SA
+
+;Localised Vendor name
+%{"t_oomtestapps EN"}
+
+; Vendor name
+: "t_oomtestapps"
+
+"\epoc32\release\armv5\urel\t_oomtestapp.exe"-"!:\sys\bin\t_oomtestapp.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp.rsc"-"!:\resource\apps\t_oomtestapp.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp2.exe"-"!:\sys\bin\t_oomtestapp2.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp2.rsc"-"!:\resource\apps\t_oomtestapp2.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp2_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp2_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp3.exe"-"!:\sys\bin\t_oomtestapp3.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp3.rsc"-"!:\resource\apps\t_oomtestapp3.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp3_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp3_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp4.exe"-"!:\sys\bin\t_oomtestapp4.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp4.rsc"-"!:\resource\apps\t_oomtestapp4.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp4_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp4_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp5.exe"-"!:\sys\bin\t_oomtestapp5.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp5.rsc"-"!:\resource\apps\t_oomtestapp5.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp5_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp5_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp6.exe"-"!:\sys\bin\t_oomtestapp6.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp6.rsc"-"!:\resource\apps\t_oomtestapp6.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp6_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp6_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp7.exe"-"!:\sys\bin\t_oomtestapp7.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp7.rsc"-"!:\resource\apps\t_oomtestapp7.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp7_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp7_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp8.exe"-"!:\sys\bin\t_oomtestapp8.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp8.rsc"-"!:\resource\apps\t_oomtestapp8.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp8_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp8_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp9.exe"-"!:\sys\bin\t_oomtestapp9.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp9.rsc"-"!:\resource\apps\t_oomtestapp9.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp9_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp9_reg.rsc"
+
+"\epoc32\release\armv5\urel\t_oomtestapp10.exe"-"!:\sys\bin\t_oomtestapp10.exe"
+"\epoc32\data\z\resource\apps\t_oomtestapp10.rsc"-"!:\resource\apps\t_oomtestapp10.rsc"
+"\epoc32\data\z\private\10003a3f\apps\t_oomtestapp10_reg.rsc"-"!:\private\10003a3f\import\apps\t_oomtestapp10_reg.rsc"
Binary file sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/oomtestapps.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp.mmh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET          T_OOM_TESTAPP_NAME_EXE
+TARGETTYPE      exe
+EPOCHEAPSIZE    0x10000 0x4000000 // Min 64KB, Max 64MB
+UID             0x100039CE T_OOM_TESTAPP_UID
+CAPABILITY      WriteDeviceData AllFiles
+
+SOURCEPATH      ../src
+SOURCE          t_oomtestappapplication.cpp
+SOURCE          t_oomtestappappview.cpp
+SOURCE          t_oomtestappappui.cpp
+SOURCE          t_oomtestappdocument.cpp
+
+SOURCEPATH      ../data
+START RESOURCE  t_oomtestapp.rss
+HEADER
+TARGET          T_OOM_TESTAPP_NAME
+TARGETPATH      resource/apps
+END
+
+START RESOURCE  t_oomtestapp_reg.rss
+TARGET          T_OOM_TESTAPP_NAME_REG
+TARGETPATH      /private/10003a3f/apps
+END
+
+MW_LAYER_SYSTEMINCLUDE
+T_OOM_TEST_APPDEFS_INCLUDE
+USERINCLUDE    ../inc
+
+LIBRARY        euser.lib
+LIBRARY        apparc.lib
+LIBRARY        cone.lib
+LIBRARY        eikcore.lib
+LIBRARY        avkon.lib
+LIBRARY        efsrv.lib
+LIBRARY        oommonitor.lib
+LIBRARY        commondialogs.lib
+
+// End of File
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs
+#include "../inc/appdefs/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp10.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs10
+#include "../inc/appdefs10/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp2.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs2
+#include "../inc/appdefs2/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp3.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs3
+#include "../inc/appdefs3/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp4.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs4
+#include "../inc/appdefs4/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp5.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs5
+#include "../inc/appdefs5/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp6.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs6
+#include "../inc/appdefs6/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp7.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs7
+#include "../inc/appdefs7/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp8.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs8
+#include "../inc/appdefs8/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/group/t_oomtestapp9.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#define T_OOM_TEST_APPDEFS_INCLUDE USERINCLUDE ../inc/appdefs9
+#include "../inc/appdefs9/t_oomtestapp.hrh"
+#include "t_oomtestapp.mmh"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA01
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs10/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp10
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp10.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp10"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp10_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA0A
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs2/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp2
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp2.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp2"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp2_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA02
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs3/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp3
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp3.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp3"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp3_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA03
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs4/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp4
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp4.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp4"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp4_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA04
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs5/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp5
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp5.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp5"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp5_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA05
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs6/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp6
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp6.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp6"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp6_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA06
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs7/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp7
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp7.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp7"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp7_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA07
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs8/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp8
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp8.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp8"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp8_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA08
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/appdefs9/t_oomtestapp.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef T_OOMTESTAPP_HRH
+#define T_OOMTESTAPP_HRH
+
+#define T_OOM_TESTAPP_NAME        t_oomtestapp9
+#define T_OOM_TESTAPP_NAME_EXE    t_oomtestapp9.exe
+#define T_OOM_TESTAPP_NAME_STRING "t_oomtestapp9"
+#define T_OOM_TESTAPP_NAME_REG    t_oomtestapp9_reg
+#define T_OOM_TESTAPP_UID         0xE6CFBA09
+
+#endif // T_OOMTESTAPP_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/t_oomtestappapplication.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,52 @@
+/*
+ ============================================================================
+ Name		: t_oomtestappApplication.h
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Declares main application class.
+ ============================================================================
+ */
+
+#ifndef __T_OOMTESTAPPAPPLICATION_H__
+#define __T_OOMTESTAPPAPPLICATION_H__
+
+// INCLUDES
+#include <aknapp.h>
+
+// CLASS DECLARATION
+
+/**
+ * Ct_oomtestappApplication application class.
+ * Provides factory to create concrete document object.
+ * An instance of Ct_oomtestappApplication is the application part of the
+ * AVKON application framework for the t_oomtestapp example application.
+ */
+class Ct_oomtestappApplication : public CAknApplication
+	{
+public:
+	Ct_oomtestappApplication();
+	// Functions from base classes
+
+	/**
+	 * From CApaApplication, AppDllUid.
+	 * @return Application's UID
+	 */
+	TUid AppDllUid() const;
+
+	~Ct_oomtestappApplication();
+protected:
+	// Functions from base classes
+
+	/**
+	 * From CApaApplication, CreateDocumentL.
+	 * Creates Ct_oomtestappDocument document object. The returned
+	 * pointer in not owned by the Ct_oomtestappApplication object.
+	 * @return A pointer to the created document object.
+	 */
+	CApaDocument* CreateDocumentL();
+	
+private:
+	};
+
+#endif // __T_OOMTESTAPPAPPLICATION_H__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/t_oomtestappappui.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,92 @@
+/*
+ ============================================================================
+ Name		: t_oomtestappAppUi.h
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Declares UI class for application.
+ ============================================================================
+ */
+
+#ifndef __T_OOMTESTAPPAPPUI_h__
+#define __T_OOMTESTAPPAPPUI_h__
+
+// INCLUDES
+#include <aknappui.h>
+#include <oommonitorsession.h>
+
+// FORWARD DECLARATIONS
+class Ct_oomtestappAppView;
+
+const TInt KKiloByte = 1024;
+
+// CLASS DECLARATION
+/**
+ * Ct_oomtestappAppUi application UI class.
+ * Interacts with the user through the UI and request message processing
+ * from the handler class
+ */
+class Ct_oomtestappAppUi : public CAknAppUi
+	{
+public:
+		
+	// Constructors and destructor
+
+	/**
+	 * ConstructL.
+	 * 2nd phase constructor.
+	 */
+	void ConstructL();
+
+	/**
+	 * Ct_oomtestappAppUi.
+	 * C++ default constructor. This needs to be public due to
+	 * the way the framework constructs the AppUi
+	 */
+	Ct_oomtestappAppUi();
+
+	/**
+	 * ~Ct_oomtestappAppUi.
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomtestappAppUi();
+
+	TInt AllocatedHeap() const;
+
+	TPtrC Priority() const;
+
+private:
+	// Functions from base classes
+
+	/**
+	 * From CEikAppUi, HandleCommandL.
+	 * Takes care of command handling.
+	 * @param aCommand Command to be handled.
+	 */
+	void HandleCommandL(TInt aCommand);
+
+	/**
+	 *  HandleStatusPaneSizeChange.
+	 *  Called by the framework when the application status pane
+	 *  size is changed.
+	 */
+	void HandleStatusPaneSizeChange();
+
+private:
+	// Data
+
+	/**
+	 * The application view
+	 * Owned by Ct_oomtestappAppUi
+	 */
+	Ct_oomtestappAppView* iAppView;
+
+    ROomMonitorSession iOomSession;
+    
+    TAny* iMem;
+
+    ROomMonitorSession::TOomPriority iPriority;
+
+	};
+
+#endif // __T_OOMTESTAPPAPPUI_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/t_oomtestappappview.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+ ============================================================================
+ Name		: t_oomtestappAppView.h
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Declares view class for application.
+ ============================================================================
+ */
+
+#ifndef __T_OOMTESTAPPAPPVIEW_h__
+#define __T_OOMTESTAPPAPPVIEW_h__
+
+// INCLUDES
+#include <coecntrl.h>
+
+class Ct_oomtestappAppUi;
+
+// CLASS DECLARATION
+class Ct_oomtestappAppView : public CCoeControl
+	{
+public:
+	// New methods
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Create a Ct_oomtestappAppView object, which will draw itself to aRect.
+	 * @param aRect The rectangle this view will be drawn to.
+	 * @return a pointer to the created instance of Ct_oomtestappAppView.
+	 */
+	static Ct_oomtestappAppView* NewL(const TRect& aRect, Ct_oomtestappAppUi& aAppUi);
+
+	/**
+	 * ~Ct_oomtestappAppView
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomtestappAppView();
+
+public:
+	// Functions from base classes
+
+	/**
+	 * From CCoeControl, Draw
+	 * Draw this Ct_oomtestappAppView to the screen.
+	 * @param aRect the rectangle of this view that needs updating
+	 */
+	void Draw(const TRect& aRect) const;
+
+	/**
+	 * From CoeControl, SizeChanged.
+	 * Called by framework when the view size is changed.
+	 */
+	virtual void SizeChanged();
+
+private:
+	// Constructors
+
+	/**
+	 * ConstructL
+	 * 2nd phase constructor.
+	 * Perform the second phase construction of a
+	 * Ct_oomtestappAppView object.
+	 * @param aRect The rectangle this view will be drawn to.
+	 */
+	void ConstructL(const TRect& aRect);
+
+	/**
+	 * Ct_oomtestappAppView.
+	 * C++ default constructor.
+	 */
+	Ct_oomtestappAppView( Ct_oomtestappAppUi& aAppUi );
+
+private:
+    Ct_oomtestappAppUi& iAppUi;
+
+    const CFont* iFont; // not own
+
+	};
+
+#endif // __T_OOMTESTAPPAPPVIEW_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/t_oomtestappcmd.hrh	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,27 @@
+/*
+============================================================================
+ Name       : t_oomtestappcmd.hrh
+ Author   : 
+ Copyright   : Your copyright notice
+ Description : This file contains all the resources for the t_oomtestapp.
+============================================================================
+*/
+
+
+#ifndef T_OOMTESTAPPCMD_HRH
+#define T_OOMTESTAPPCMD_HRH
+
+enum TOomTestAppCmds
+    {
+    EOomTestAppSelectConfig = 1000,
+    EOomTestAppToggleSystem,
+    EOomTestAppAllocMemory,
+    EOomTestAppFreeMemory,
+    EOomTestAppAllocMemWithPermission,
+    EOomTestAppSetPriority,
+    EOomTestAppSetPriorityNormal,
+    EOomTestAppSetPriorityHigh,
+    EOomTestAppSetPriorityBusy
+    };
+
+#endif // T_OOMTESTAPPCMD_HRH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/inc/t_oomtestappdocument.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,91 @@
+/*
+ ============================================================================
+ Name		: t_oomtestappDocument.h
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Declares document class for application.
+ ============================================================================
+ */
+
+#ifndef __T_OOMTESTAPPDOCUMENT_h__
+#define __T_OOMTESTAPPDOCUMENT_h__
+
+// INCLUDES
+#include <akndoc.h>
+
+// FORWARD DECLARATIONS
+class Ct_oomtestappAppUi;
+class CEikApplication;
+
+// CLASS DECLARATION
+
+/**
+ * Ct_oomtestappDocument application class.
+ * An instance of class Ct_oomtestappDocument is the Document part of the
+ * AVKON application framework for the t_oomtestapp example application.
+ */
+class Ct_oomtestappDocument : public CAknDocument
+	{
+public:
+	// Constructors and destructor
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Construct a Ct_oomtestappDocument for the AVKON application aApp
+	 * using two phase construction, and return a pointer
+	 * to the created object.
+	 * @param aApp Application creating this document.
+	 * @return A pointer to the created instance of Ct_oomtestappDocument.
+	 */
+	static Ct_oomtestappDocument* NewL(CEikApplication& aApp);
+
+	/**
+	 * NewLC.
+	 * Two-phased constructor.
+	 * Construct a Ct_oomtestappDocument for the AVKON application aApp
+	 * using two phase construction, and return a pointer
+	 * to the created object.
+	 * @param aApp Application creating this document.
+	 * @return A pointer to the created instance of Ct_oomtestappDocument.
+	 */
+	static Ct_oomtestappDocument* NewLC(CEikApplication& aApp);
+
+	/**
+	 * ~Ct_oomtestappDocument
+	 * Virtual Destructor.
+	 */
+	virtual ~Ct_oomtestappDocument();
+
+public:
+	// Functions from base classes
+
+	/**
+	 * CreateAppUiL
+	 * From CEikDocument, CreateAppUiL.
+	 * Create a Ct_oomtestappAppUi object and return a pointer to it.
+	 * The object returned is owned by the Uikon framework.
+	 * @return Pointer to created instance of AppUi.
+	 */
+	CEikAppUi* CreateAppUiL();
+
+private:
+	// Constructors
+
+	/**
+	 * ConstructL
+	 * 2nd phase constructor.
+	 */
+	void ConstructL();
+
+	/**
+	 * Ct_oomtestappDocument.
+	 * C++ default constructor.
+	 * @param aApp Application creating this document.
+	 */
+	Ct_oomtestappDocument(CEikApplication& aApp);
+
+	};
+
+#endif // __T_OOMTESTAPPDOCUMENT_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/src/t_oomtestappapplication.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <eikstart.h>
+#include "t_oomtestappDocument.h"
+#include "t_oomtestappApplication.h"
+#include "t_oomtestapp.hrh"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+Ct_oomtestappApplication::Ct_oomtestappApplication()
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappApplication::CreateDocumentL()
+// Creates CApaDocument object
+// -----------------------------------------------------------------------------
+//
+CApaDocument* Ct_oomtestappApplication::CreateDocumentL()
+	{
+	return Ct_oomtestappDocument::NewL(*this);
+	}
+
+Ct_oomtestappApplication::~Ct_oomtestappApplication()
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappApplication::AppDllUid()
+// Returns application UID
+// -----------------------------------------------------------------------------
+//
+TUid Ct_oomtestappApplication::AppDllUid() const
+	{
+	// Return the UID for the t_oomtestapp application
+	return TUid::Uid( T_OOM_TESTAPP_UID );
+	}
+
+EXPORT_C CApaApplication* NewApplication()
+    {
+	return new Ct_oomtestappApplication;
+    }
+
+GLDEF_C TInt E32Main()
+	{
+	return EikStart::RunApplication(NewApplication);
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/src/t_oomtestappappui.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,260 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <avkon.hrh>
+#include <aknquerydialog.h>
+#include <commondialogs.hrh>
+#include <akncommondialogsdynmem.h>
+#include <f32file.h>
+#include <t_oomtestapp.rsg>
+#include "t_oomtestappcmd.hrh"
+#include "t_oomtestappApplication.h"
+#include "t_oomtestappAppUi.h"
+#include "t_oomtestappAppView.h"
+
+_LIT( KOomConfigTargetFile, "c:\\private\\10207218\\oomconfig.xml" );
+_LIT( KOomPriorityNormal, "normal" );
+_LIT( KOomPriorityHigh, "high" );
+_LIT( KOomPriorityBusy, "busy" );
+const TInt KInitialAllocSize = 2048;
+
+// ---------------------------------------------------------------------------
+// AskPathL
+// ---------------------------------------------------------------------------
+//
+static TBool AskPathL( TDes& aPath )
+    {
+    TParsePtr parse( aPath );
+    TPtrC rootFolder = parse.DriveAndPath();
+    TBool ret = AknCommonDialogsDynMem::RunSelectDlgLD(
+        AknCommonDialogsDynMem::EMemoryTypePhone |
+        AknCommonDialogsDynMem::EMemoryTypeMMC,
+        aPath,
+        rootFolder,
+        R_MEMORY_SELECTION,
+        R_FILE_SELECTION );
+    return ret;
+    }
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppUi::ConstructL()
+	{
+	// Initialise app UI with standard value.
+	BaseConstructL(CAknAppUi::EAknEnableSkin);
+
+	User::LeaveIfError( iOomSession.Connect() );
+
+	// Create view object
+	iAppView = Ct_oomtestappAppView::NewL(ClientRect(), *this);
+	
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::Ct_oomtestappAppUi()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappAppUi::Ct_oomtestappAppUi()
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::~Ct_oomtestappAppUi()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappAppUi::~Ct_oomtestappAppUi()
+	{
+    delete iAppView;
+    iOomSession.Close();
+    User::Free(iMem);
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::HandleCommandL()
+// Takes care of command handling.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppUi::HandleCommandL(TInt aCommand)
+	{
+	switch (aCommand)
+		{
+        case EOomTestAppSelectConfig:
+            {
+            TFileName fileName;
+            if ( AskPathL( fileName ) )
+                {
+                RFs& fs( iEikonEnv->FsSession() );
+                fs.MkDirAll( KOomConfigTargetFile ); // Ignore error
+                CFileMan* fileMan = CFileMan::NewL( fs );
+                CleanupStack::PushL( fileMan );
+                User::LeaveIfError( fileMan->Copy( fileName, KOomConfigTargetFile ) );
+                CleanupStack::PopAndDestroy( fileMan );
+                }
+            break;
+            }
+        case EOomTestAppToggleSystem:
+            {
+            iEikonEnv->SetSystem( !(iEikonEnv->IsSystem()) );
+            iAppView->DrawDeferred();
+            break;
+            }
+        case EOomTestAppAllocMemory:
+            {
+            TInt size(KInitialAllocSize);
+            CAknNumberQueryDialog* query = CAknNumberQueryDialog::NewL(size);
+            if ( query->ExecuteLD( R_ALLOC_QUERY ) )
+                {
+                User::Free(iMem);
+                iMem = NULL;
+                size *= KKiloByte;
+                iMem = User::AllocL(size);
+                iAppView->DrawDeferred();
+                }
+            break;
+            }
+        case EOomTestAppFreeMemory:
+            {
+            User::Free(iMem);
+            iMem = NULL;
+            iAppView->DrawDeferred();
+            break;
+            }
+        case EOomTestAppAllocMemWithPermission:
+            {
+            TInt size(KInitialAllocSize);
+            CAknNumberQueryDialog* query = CAknNumberQueryDialog::NewL(size);
+            if ( query->ExecuteLD( R_ALLOC_QUERY ) )
+                {
+                User::Free(iMem);
+                iMem = NULL;
+                size *= KKiloByte;
+                if ( iPriority != ROomMonitorSession::EOomPriorityBusy )
+                    {
+                    // Prevent OOM to close this app while it is freeing memory
+                    iOomSession.SetOomPriority(ROomMonitorSession::EOomPriorityBusy);
+                    }
+                iOomSession.RequestFreeMemory( size );
+                if ( iPriority != ROomMonitorSession::EOomPriorityBusy )
+                    {
+                    // Allow OOM to close this app again
+                    iOomSession.SetOomPriority(iPriority);
+                    }
+                iMem = User::AllocL(size);
+                iAppView->DrawDeferred();
+                }
+            break;
+            }
+        case EOomTestAppSetPriorityNormal:
+            {
+            iPriority = ROomMonitorSession::EOomPriorityNormal;
+            iOomSession.SetOomPriority(iPriority);
+            iAppView->DrawDeferred();
+            break;
+            }
+        case EOomTestAppSetPriorityHigh:
+            {
+            iPriority = ROomMonitorSession::EOomPriorityHigh;
+            iOomSession.SetOomPriority(iPriority);
+            iAppView->DrawDeferred();
+            break;
+            }
+        case EOomTestAppSetPriorityBusy:
+            {
+            iPriority = ROomMonitorSession::EOomPriorityBusy;
+            iOomSession.SetOomPriority(iPriority);
+            iAppView->DrawDeferred();
+            break;
+            }    
+		case EEikCmdExit:
+		case EAknSoftkeyExit: // Fall through
+		    {
+			Exit();
+			break;
+		    }
+		default:
+		    {
+			break;
+		    }
+		}
+	}
+
+// -----------------------------------------------------------------------------
+//  Called by the framework when the application status pane
+//  size is changed.  Passes the new client rectangle to the
+//  AppView
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppUi::HandleStatusPaneSizeChange()
+	{
+	iAppView->SetRect(ClientRect());
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::AllocatedHeap
+// -----------------------------------------------------------------------------
+//
+TInt Ct_oomtestappAppUi::AllocatedHeap() const
+    {
+    TInt ret( 0 );
+    RHeap& heap( User::Heap() );
+    heap.AllocSize( ret );
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppUi::Priority
+// -----------------------------------------------------------------------------
+//
+TPtrC Ct_oomtestappAppUi::Priority() const
+    {
+    switch ( iPriority )
+        {
+        case ROomMonitorSession::EOomPriorityNormal:
+            {
+            return KOomPriorityNormal();
+            }
+        case ROomMonitorSession::EOomPriorityHigh:
+            {
+            return KOomPriorityHigh();
+            }
+        case ROomMonitorSession::EOomPriorityBusy:
+            {
+            return KOomPriorityBusy();
+            }
+        default:
+            {
+            break;
+            }
+        }
+    return KNullDesC();
+    }
+        
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/src/t_oomtestappappview.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <coemain.h>
+#include <eikenv.h>
+#include <aknutils.h>
+#include "t_oomtestappAppUi.h"
+#include "t_oomtestappAppView.h"
+
+_LIT( KTextSystemOn, "System on" );
+_LIT( KTextSystemOff, "System off" );
+const TInt KTextBufferSize = 100;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappAppView* Ct_oomtestappAppView::NewL(const TRect& aRect, Ct_oomtestappAppUi& aAppUi)
+	{
+	Ct_oomtestappAppView* self = new ( ELeave ) Ct_oomtestappAppView( aAppUi );
+	CleanupStack::PushL(self);
+	self->ConstructL( aRect );
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppView::ConstructL(const TRect& aRect)
+	{
+	// Create a window for this application view
+	CreateWindowL();
+
+	// Set the windows size
+	SetRect(aRect);
+
+    iFont = AknLayoutUtils::FontFromId( EAknLogicalFontPrimarySmallFont );
+
+	// Activate the window, which makes it ready to be drawn
+	ActivateL();
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::Ct_oomtestappAppView()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappAppView::Ct_oomtestappAppView( Ct_oomtestappAppUi& aAppUi ) :
+    iAppUi( aAppUi )
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::~Ct_oomtestappAppView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappAppView::~Ct_oomtestappAppView()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::Draw()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppView::Draw(const TRect& /*aRect*/) const
+	{
+	// Get the standard graphics context
+	CWindowGc& gc = SystemGc();
+
+	// Gets the control's extent
+	TRect drawRect(Rect());
+
+	// Clears the screen
+	gc.Clear(drawRect);
+	
+    gc.UseFont(iFont);
+    
+    TBuf<KTextBufferSize> buffer;
+    TInt allocSize( iAppUi.AllocatedHeap() / KKiloByte );
+    TPtrC priority( iAppUi.Priority() );
+	if ( CEikonEnv::Static()->IsSystem() )
+	    {
+        buffer.Format( _L("%S : Heap %d KB : Priority %S"),
+            &(KTextSystemOn()), allocSize, &priority );
+	    }
+    else
+        {
+        buffer.Format( _L("%S : Heap %d KB : Priority %S"),
+            &(KTextSystemOff()), allocSize, &priority );
+        }
+    TPoint textPos( 0, drawRect.Height() / 2 );
+    gc.DrawText( buffer, textPos );
+    gc.DiscardFont();
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappAppView::SizeChanged()
+// Called by framework when the view size is changed.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappAppView::SizeChanged()
+	{
+	DrawDeferred();
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomtestapp/src/t_oomtestappdocument.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "t_oomtestappAppUi.h"
+#include "t_oomtestappDocument.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappDocument::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappDocument* Ct_oomtestappDocument::NewL(CEikApplication& aApp)
+	{
+	Ct_oomtestappDocument* self = NewLC(aApp);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappDocument::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappDocument* Ct_oomtestappDocument::NewLC(CEikApplication& aApp)
+	{
+	Ct_oomtestappDocument* self = new (ELeave) Ct_oomtestappDocument(aApp);
+
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappDocument::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Ct_oomtestappDocument::ConstructL()
+	{
+	// No implementation required
+	}
+
+// -----------------------------------------------------------------------------
+// Ct_oomtestappDocument::Ct_oomtestappDocument()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+Ct_oomtestappDocument::Ct_oomtestappDocument(CEikApplication& aApp) :
+	CAknDocument(aApp)
+	{
+	// No implementation required
+	}
+
+// ---------------------------------------------------------------------------
+// Ct_oomtestappDocument::~Ct_oomtestappDocument()
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+Ct_oomtestappDocument::~Ct_oomtestappDocument()
+	{
+	// No implementation required
+	}
+
+// ---------------------------------------------------------------------------
+// Ct_oomtestappDocument::CreateAppUiL()
+// Constructs CreateAppUi.
+// ---------------------------------------------------------------------------
+//
+CEikAppUi* Ct_oomtestappDocument::CreateAppUiL()
+	{
+	// Create the application user interface, and return a pointer to it;
+	// the framework takes ownership of this object
+	return new (ELeave) Ct_oomtestappAppUi;
+	}
+
+// End of File
--- a/sysresmonitoring/oommonitor/tsrc/public/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/adv/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/adv/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/adv/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/adv/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/adv/init/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/BWINS/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/BWINS/MT_OomMonitorU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void)
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/EABI/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/EABI/MT_OomMonitorU.DEF	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/MT_COomMonitorPlugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-//  CLASS HEADER
-#include "MT_COomMonitorPlugin.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <oommonitorplugin.h>
-#include <oommonitor.h>
-
-
-
-MT_COomMonitorPlugin* MT_COomMonitorPlugin::NewL()
-    {
-    MT_COomMonitorPlugin* self = MT_COomMonitorPlugin::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-MT_COomMonitorPlugin* MT_COomMonitorPlugin::NewLC()
-    {
-    MT_COomMonitorPlugin* self = new( ELeave ) MT_COomMonitorPlugin();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-MT_COomMonitorPlugin::~MT_COomMonitorPlugin()
-    {
-    }
-
-// Default constructor
-MT_COomMonitorPlugin::MT_COomMonitorPlugin()
-    {
-    }
-
-// Second phase construct
-void MT_COomMonitorPlugin::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-//  METHODS
-
-void MT_COomMonitorPlugin::BasicSetupL(  )
-    {
-    iMonitor = CMemoryMonitor::NewL();
-    }
-    
-
-void MT_COomMonitorPlugin::BasicTeardown(  )
-    {
-    delete iMonitor;
-    iMonitor = NULL; 
-    }
-    
-void MT_COomMonitorPlugin::SetupL(  )
-    {
-    BasicSetupL();
-    
-    const TUid KMyAppUid = { 0x01234567};
-    iCOomMonitorPlugin = CAppOomMonitorPlugin::NewL( KMyAppUid );
-    }
-    
-
-void MT_COomMonitorPlugin::Teardown(  )
-    {
-    BasicTeardown();
-    
-    delete iCOomMonitorPlugin; 
-    iCOomMonitorPlugin = NULL;
-    }
-    
-    
-void MT_COomMonitorPlugin::T_CAppOomMonitorPlugin_NewLL(  )
-    {
-    const TUid KMyAppUid = { 0x01234567};
-    CAppOomMonitorPlugin* plugin = CAppOomMonitorPlugin::NewL( KMyAppUid );
-    CleanupStack::PushL( plugin );
-    
-    EUNIT_ASSERT_DESC( plugin, "CAppOomMonitorPlugin instance not created!" );
-    CleanupStack::PopAndDestroy( plugin );
-    }
-    
-void MT_COomMonitorPlugin::T_COomMonitorPlugin_FreeRamL(  )
-    {
-    // private function in CAppOomMonitorPlugin, couldn't be tested
-    //iCOomMonitorPlugin->FreeRam( );
-    }
-    
-void MT_COomMonitorPlugin::T_COomMonitorPlugin_MemoryGoodL(  )
-    {
-    // private function in CAppOomMonitorPlugin, couldn't be tested
-    //iCOomMonitorPlugin->MemoryGood( );
-    }
-    
-void MT_COomMonitorPlugin::T_COomMonitorPlugin_FsSessionL(  )
-    {
-    iCOomMonitorPlugin->FsSession( );
-    }
-    
-void MT_COomMonitorPlugin::T_COomMonitorPlugin_WsSessionL(  )
-    {
-    iCOomMonitorPlugin->WsSession( );
-    }
-
-void MT_COomMonitorPlugin::T_COomMonitorPlugin_ExtensionInterfaceL(  )
-    {
-	CTestOomMonitorPlugin* plugin = new(ELeave) CTestOomMonitorPlugin;
-	CleanupStack::PushL(plugin);
-	plugin->ConstructL();
-	
-	const TUid KTestUid = { 0x01234567 };      // a nonsense UID for testing
-	TAny* any = NULL;
-	plugin->ExtensionInterface( KTestUid, any );
-	
-	CleanupStack::PopAndDestroy(plugin);
-    }
-    
-
-//  TEST TABLE
-EUNIT_BEGIN_TEST_TABLE(
-    MT_COomMonitorPlugin,
-    "COomMonitorPlugin test suite",
-    "MODULE" )
-
-EUNIT_TEST(
-    "NewL - test",
-    "COomMonitorPlugin",
-    "CAppOomMonitorPlugin NewL and COomMonitorPlugin Constructor, Destructor",
-    "FUNCTIONALITY",
-    BasicSetupL, T_CAppOomMonitorPlugin_NewLL, BasicTeardown)
-    
-EUNIT_TEST(
-    "FsSession - test",
-    "COomMonitorPlugin",
-    "FsSession",
-    "FUNCTIONALITY",
-    SetupL, T_COomMonitorPlugin_FsSessionL, Teardown)
-    
-EUNIT_TEST(
-    "WsSession - test",
-    "COomMonitorPlugin",
-    "WsSession",
-    "FUNCTIONALITY",
-    SetupL, T_COomMonitorPlugin_WsSessionL, Teardown)
-    
-EUNIT_TEST(
-    "ExtensionInterface - test",
-    "COomMonitorPlugin",
-    "ExtensionInterface",
-    "FUNCTIONALITY",
-    SetupL, T_COomMonitorPlugin_ExtensionInterfaceL, Teardown)    
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/MT_COomMonitorPlugin.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#ifndef __MT_COOMMONITORPLUGIN_H__
-#define __MT_COOMMONITORPLUGIN_H__
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuiteClass.h>
-#include <EUnitDecorators.h>
-#include <oommonitorplugin.h>
-
-//  INTERNAL INCLUDES
-
-
-//  FORWARD DECLARATIONS
-
-
-//  CLASS DEFINITION
-NONSHARABLE_CLASS( MT_COomMonitorPlugin )
-	: public CEUnitTestSuiteClass
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static MT_COomMonitorPlugin* NewL();
-        static MT_COomMonitorPlugin* NewLC();
-        /**
-         * Destructor
-         */
-        ~MT_COomMonitorPlugin();
-
-    private:    // Constructors and destructors
-
-        MT_COomMonitorPlugin();
-        void ConstructL();
-
-    private:    // New methods
-
-
-         void SetupL();
-        
-         void Teardown();
-         
-         void BasicSetupL();
-        
-         void BasicTeardown();         
-        
-         void T_CAppOomMonitorPlugin_NewLL();
-        
-         void T_COomMonitorPlugin_FreeRamL();
-        
-         void T_COomMonitorPlugin_MemoryGoodL();
-        
-         void T_COomMonitorPlugin_FsSessionL();
-        
-         void T_COomMonitorPlugin_WsSessionL();
-         
-         void T_COomMonitorPlugin_ExtensionInterfaceL();
-        
-
-    private:    // Data
-		
-        CAppOomMonitorPlugin* iCOomMonitorPlugin;
-        CMemoryMonitor* iMonitor;
-        
-        EUNIT_DECLARE_TEST_TABLE; 
-
-    };
-   
-    
-NONSHARABLE_CLASS( CTestOomMonitorPlugin ) : public COomMonitorPlugin
-	{
-public:
-	CTestOomMonitorPlugin()
-		{
-		}
-		
-	~CTestOomMonitorPlugin()
-		{
-		}
-		
-	void ConstructL()
-		{
-		COomMonitorPlugin::ConstructL();
-		}
-		
-public:
-	void FreeRam()
-		{
-		}
-		
-	void MemoryGood()
-		{
-		}
-
-	void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion)
-		{
-		COomMonitorPlugin::ExtensionInterface(aInterfaceId, aImplementaion);
-		}
-	};
-    
-
-#endif      //  __MT_COOMMONITORPLUGIN_H__
-
-// End of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/MT_OomMonitor.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-//  CLASS HEADER
-#include "MT_OomMonitor.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <oommonitorsession.h>
-
-//  INTERNAL INCLUDES
-
-
-// CONSTRUCTION
-MT_OomMonitor* MT_OomMonitor::NewL()
-    {
-    MT_OomMonitor* self = MT_OomMonitor::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-MT_OomMonitor* MT_OomMonitor::NewLC()
-    {
-    MT_OomMonitor* self = new( ELeave ) MT_OomMonitor();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-MT_OomMonitor::~MT_OomMonitor()
-    {
-    }
-
-// Default constructor
-MT_OomMonitor::MT_OomMonitor()
-    {
-    }
-
-// Second phase construct
-void MT_OomMonitor::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-//  METHODS
-
-void MT_OomMonitor::EmptySetupL(  )
-    {
-    }
-
-void MT_OomMonitor::EmptyTeardown(  )
-    {
-    }
-
-void MT_OomMonitor::SetupL(  )
-    {
-    iROomMonitorSession.Connect();
-    }
-    
-
-void MT_OomMonitor::Teardown(  )
-    {
-    iROomMonitorSession.Close(); 
-    }
-    
-
-void MT_OomMonitor::T_ROomMonitorSession_ConnectL(  )
-    {
-    EUNIT_ASSERT_DESC( iROomMonitorSession.Connect( ) == KErrNone, "Session should have been connected");
-    iROomMonitorSession.Close();
-    }
-    
-void MT_OomMonitor::T_ROomMonitorSession_RequestFreeMemoryL(  )
-    {
-    TInt rtn = iROomMonitorSession.RequestFreeMemory( 1024 );
-    EUNIT_ASSERT_DESC( rtn == KErrNone || rtn == KErrNoMemory, "OOM monitor should free 1024 bytes");
-    }
-    
-void MT_OomMonitor::T_ROomMonitorSession_RequestFreeMemory2L(  )
-    {
-    TRequestStatus status;    
-    iROomMonitorSession.RequestFreeMemory( 1024, status );
-    User::WaitForRequest( status );
-    EUNIT_ASSERT_DESC( status == KErrNone || status == KErrNoMemory, "OOM monitor should free 1024 bytes");
-    }
-    
-void MT_OomMonitor::T_ROomMonitorSession_CancelRequestFreeMemoryL(  )
-    {
-    TRequestStatus status;    
-    iROomMonitorSession.RequestFreeMemory( 1024, status );
-    iROomMonitorSession.CancelRequestFreeMemory( );
-    User::WaitForRequest( status );
-    }
-    
-void MT_OomMonitor::T_ROomMonitorSession_ThisAppIsNotExitingL(  )
-    {
-    iROomMonitorSession.ThisAppIsNotExiting( 1 );
-    }
-    
-
-//  TEST TABLE
-EUNIT_BEGIN_TEST_TABLE(
-    MT_OomMonitor,
-    "ROomMonitorSession test suite",
-    "MODULE" )
-
-EUNIT_TEST(
-    "Connect - test",
-    "ROomMonitorSession",
-    "Connect",
-    "FUNCTIONALITY",
-    EmptySetupL, T_ROomMonitorSession_ConnectL, EmptyTeardown)
-    
-EUNIT_TEST(
-    "RequestFreeMemory -synchronous test",
-    "ROomMonitorSession",
-    "RequestFreeMemory - synchronous version",
-    "FUNCTIONALITY",
-    SetupL, T_ROomMonitorSession_RequestFreeMemoryL, Teardown)
-    
-EUNIT_TEST(
-    "RequestFreeMemory - asynchronous test",
-    "ROomMonitorSession",
-    "RequestFreeMemory - asynchronous version",
-    "FUNCTIONALITY",
-    SetupL, T_ROomMonitorSession_RequestFreeMemory2L, Teardown)
-    
-EUNIT_TEST(
-    "CancelRequestFreeMemory - test",
-    "ROomMonitorSession",
-    "CancelRequestFreeMemory",
-    "FUNCTIONALITY",
-    SetupL, T_ROomMonitorSession_CancelRequestFreeMemoryL, Teardown)
-    
-EUNIT_TEST(
-    "ThisAppIsNotExiting -test",
-    "ROomMonitorSession",
-    "ThisAppIsNotExiting",
-    "FUNCTIONALITY",
-    SetupL, T_ROomMonitorSession_ThisAppIsNotExitingL, Teardown)
-    
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/MT_OomMonitor.h	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#ifndef __MT_OOMMONITOR_H__
-#define __MT_OOMMONITOR_H__
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuiteClass.h>
-#include <EUnitDecorators.h>
-#include <oommonitorsession.h>
-
-//  INTERNAL INCLUDES
-
-
-//  FORWARD DECLARATIONS
-
-
-//  CLASS DEFINITION
-/**
- * Auto-generated EUnit test suite
- *
- */
-NONSHARABLE_CLASS( MT_OomMonitor )
-	: public CEUnitTestSuiteClass
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static MT_OomMonitor* NewL();
-        static MT_OomMonitor* NewLC();
-        /**
-         * Destructor
-         */
-        ~MT_OomMonitor();
-
-    private:    // Constructors and destructors
-
-        MT_OomMonitor();
-        void ConstructL();
-
-    private:    // New methods
-
-     	 void EmptySetupL();
-    
-    	 void EmptyTeardown();
-    
-         void SetupL();
-        
-         void Teardown();
-        
-         void T_ROomMonitorSession_ConnectL();
-        
-         void T_ROomMonitorSession_RequestFreeMemoryL();
-        
-         void T_ROomMonitorSession_RequestFreeMemory2L();
-        
-         void T_ROomMonitorSession_CancelRequestFreeMemoryL();
-        
-         void T_ROomMonitorSession_ThisAppIsNotExitingL();
-        
-
-    private:    // Data
-		
-        ROomMonitorSession iROomMonitorSession;
-        EUNIT_DECLARE_TEST_TABLE; 
-
-    };
-
-#endif      //  __MT_OOMMONITOR_H__
-
-// End of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/MT_OomMonitor_DllMain.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-//  CLASS HEADER
-#include "MT_OomMonitor.h"
-#include "MT_COomMonitorPlugin.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    CEUnitTestSuite* rootSuite = CEUnitTestSuite::NewLC( _L("OomMonitor API tests") );
-
-    rootSuite->AddL( MT_OomMonitor::NewLC() );
-    CleanupStack::Pop();
-
-    rootSuite->AddL( MT_COomMonitorPlugin::NewLC() );
-    CleanupStack::Pop();
-
-    CleanupStack::Pop( rootSuite );
-    return rootSuite;    
-    }
-/*
-#ifndef EKA2
-GLDEF_C TInt E32Dll( TDllReason )
-	{
-	return KErrNone;
-	}
-#endif
-*/
-//  END OF FILE
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/MT_OomMonitor/stub_MemoryMonitor.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#include <oommonitor.h>
-#include <oommonitorplugin.h>
-
-CMemoryMonitor* CMemoryMonitor::NewL()
-	{
-    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;		
-	}
-
-CMemoryMonitor::CMemoryMonitor():iCurrentTask(iWs)
-    {
-    SetMemoryMonitorTls(this);
-    }
-
-void CMemoryMonitor::ConstructL()
-	{
-	
-	}
-
-CMemoryMonitor::~CMemoryMonitor()
-    {
-    }
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/group/MT_OomMonitor.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-TARGET          MT_OomMonitor.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB -DRM
-VENDORID                VID_DEFAULT
-
-SOURCEPATH              ../MT_OomMonitor
-SOURCE                  MT_OomMonitor.cpp
-SOURCE                  MT_COomMonitorPlugin.cpp
-SOURCE                  stub_MemoryMonitor.cpp
-
-// Sources required by the test suite
-SOURCEPATH              ../MT_OomMonitor
-SOURCE                  MT_OomMonitor_DllMain.cpp
-
-USERINCLUDE             ../MT_OomMonitor
-
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-// System include folders required by the tested code
-
-
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 euser.lib
-LIBRARY                 oommonitor.lib
-LIBRARY        			ws32.lib
-LIBRARY         		apgrfx.lib	// TApaTask
-
-// End of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-PRJ_PLATFORMS
-    ARMV5 GCCE WINSCW
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-
-
-PRJ_TESTMMPFILES
-MT_OomMonitor.mmp
-
-
-// End of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/init/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/sysresmonitoring/oommonitor/tsrc/public/basic/test.xml	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<test>
-    <name>oommonitor Automated Tests</name>
-    <target>
-        <device rank="none" alias="DEFAULT">
-            <property name="HARNESS" value="EUNIT" />
-            <property name="TYPE" value="Ariane" />
-        </device>
-    </target>
-    <plan name="oommonitor Automated Test Plan" harness="EUNIT" enabled="true" passrate="100">
-        <session name="session" harness="EUNIT" enabled="true" passrate="100">
-            <set name="set" harness="EUNIT" enabled="true" passrate="100">
-                <target>
-                    <device rank="master" alias="DEFAULT"/>
-                </target>
-                <case name="Test Case 1" harness="EUNIT" enabled="true" passrate="100">
-                    <flash target-alias="DEFAULT" images="ATS3Drop/images/sydo_oommonitor_ats3_image.fpsx" />
-                    <flash target-alias="DEFAULT" images="ATS3Drop/images/sydo_oommonitor_ats3_image_udaerase.fpsx" />
-                    
-                    <!-- Create CTC coverage result folder -->
-                    <step name="Create CTC log dir" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>makedir</command>
-                        <params>
-                            <param dir="c:\data\ctc\"/>
-                        </params>
-                    </step>
-                    
-                    
-                    <!-- Install testmodule MT_OomMonitor -->
-                    <step name="Install testmodule MT_OomMonitor DLL" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>install</command>
-                        <params>
-                            <param component-path="ATS3Drop"/>
-                            <param type="binary"/>
-                            <param src="MT_OomMonitor.dll"/>
-                            <param dst="c:\sys\bin\MT_OomMonitor.dll"/>
-                        </params> 
-                    </step>
-
-                    <!-- Start CTC manager -->
-                    <step name="CTC start" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>execute</command>
-                        <params>
-                            <param file="z:\sys\bin\ctcman.exe"/>
-                        </params>
-                    </step>
-
-                    <!-- Create EUnit log dir -->
-                    <step name="Create EUnit log dir" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>makedir</command>
-                        <params>
-                            <param dir="c:\shared\eunit\logs\"/>
-                        </params>
-                    </step>
-
-                    <!-- Execute tests -->
-                    <step name="Execute tests" harness="EUNIT" enabled="true" passrate="100" significant="true">
-                        <command>execute</command>
-                        <params>
-                            <param parameters="/l xml MT_OomMonitor"/>
-                            <param timeout="360"/>
-                            <param result-file="c:\shared\eunit\logs\EUnit_log.xml"/>
-                            <param file="z:\sys\bin\EUNITEXERUNNER.EXE"/>
-                        </params>
-                    </step>
-                    
-                    <!-- Save CTC coverage data -->
-                    <step name="Save CTC data" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>execute</command>
-                        <params>
-                            <param parameters="writefile"/>
-                            <param file="z:\sys\bin\ctcman.exe"/>
-                        </params>
-                    </step>
-                    
-                    <!-- Fetch and clean CTC data -->
-                    <step name="Fetch and clean CTC data" harness="EUNIT" enabled="true" passrate="100" significant="false">
-                        <command>fetch-log</command>
-                        <params>
-                            <param delete="true"/>
-                            <param path="c:\data\ctc\ctcdata.txt"/>
-                        </params>
-                    </step>
-                </case>
-            </set>
-        </session>
-    </plan>
-    <files>
-        <file>ATS3Drop/images/sydo_oommonitor_ats3_image.fpsx</file>
-        <file>ATS3Drop/images/sydo_oommonitor_ats3_image_udaerase.fpsx</file>
-        
-        <file>ATS3Drop/armv5_urel/MT_OomMonitor.dll</file>
-    </files>
-    
-    <postAction>
-        <type>SendEmailAction</type>
-        <params>
-            <param name="type" value="ATS3_REPORT"/>
-            <param name="to" value="ext-yang.1.lu@nokia.com"/>
-            <param name="subject" value="ATS3 report for §RUN_NAME§ §RUN_START_DATE§ §RUN_START_TIME§"/>
-            <param name="send-files" value="true"/>
-        </params>
-    </postAction>
-    
-    <postAction>
-        <type>FileStoreAction</type>
-        <params>
-            <param name="to-folder" value="\\ousrv058\data$\ATS3Reports\S60_5_0\SyDo\appexts\oommonitor\"/>
-        </params>
-    </postAction>
-</test>
--- a/systemsettings/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/data/gsaccessoryplugin.rss	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/GSAccessoryPlugin/data/gsaccessoryplugin.rss	Thu Jun 24 13:52:58 2010 +0100
@@ -68,11 +68,10 @@
             {
             menu_pane = r_gs_menu_item_help;
             },
-    //fix for single click and removing "set as default" from option in menu
-    /*    MENU_TITLE 
+        MENU_TITLE
             {
             menu_pane = r_acc_menu_item_set_as_default;
-            },*/
+            },
         MENU_TITLE
             {
             menu_pane = r_gs_menu_item_open;
@@ -84,8 +83,7 @@
 // R_ACC_MENU_ITEM_SET_AS_DEFAULT
 //----------------------------------------------------------------------------
 //
-//fix for single click and removing "set as default" from option in menu
-/* RESOURCE MENU_PANE r_acc_menu_item_set_as_default  
+RESOURCE MENU_PANE r_acc_menu_item_set_as_default
     {
     items =
         {
@@ -96,7 +94,7 @@
 	    flags = EEikMenuItemSpecific;
             }
         };
-    } */
+    }
 
 //----------------------------------------------------------------------------
 // R_ACC_MAIN_VIEW_CAPTION
--- a/systemsettings/GSAccessoryPlugin/group/GSAccessoryPlugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/GSAccessoryPlugin/group/GSAccessoryPlugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -104,3 +104,5 @@
 #endif //__WINS
 LIBRARY   hlplch.lib            // "Help" options menu
 LIBRARY   profileeng.lib        // Profile Engine
+
+SMPSAFE
--- a/systemsettings/GSAccessoryPlugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/GSAccessoryPlugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,9 +23,9 @@
 
 PRJ_EXPORTS
 ../cenrep/AccessoriesCRKeys.h    MW_LAYER_PLATFORM_EXPORT_PATH( accessoriescrkeys.h )
-../rom/GSAccsPlugin.iby 	     CORE_MW_LAYER_IBY_EXPORT_PATH( gsaccsplugin.iby )
-../rom/GSAccsPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( gsaccspluginresources.iby )
-../loc/GSAccsPlugin.loc 	     MW_LAYER_LOC_EXPORT_PATH( gsaccsplugin.loc )
+// ../rom/GSAccsPlugin.iby 	     CORE_MW_LAYER_IBY_EXPORT_PATH( gsaccsplugin.iby )
+// ../rom/GSAccsPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( gsaccspluginresources.iby )
+// ../loc/GSAccsPlugin.loc 	     MW_LAYER_LOC_EXPORT_PATH( gsaccsplugin.loc )
 
 // Configurations
 ../conf/GSAccessoriesPlugin.confml            MW_LAYER_CONFML(gsaccessoriesplugin.confml)
@@ -35,7 +35,7 @@
 ../conf/GSAccessoriesPlugin_10207194.crml     MW_LAYER_CRML(gsaccessoriesplugin_10207194.crml)
 
 PRJ_MMPFILES
-GSAccessoryPlugin.mmp
+// GSAccessoryPlugin.mmp
 
 PRJ_EXTENSIONS
 START EXTENSION s60/mifconv
--- a/systemsettings/GSAccessoryPlugin/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/rom/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/GSAccessoryPlugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorplugin.pro	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,26 @@
+# #####################################################################
+# Automatically generated by qmake (2.01a) Thu Mar 25 11:36:36 2010
+# #####################################################################
+TEMPLATE = lib
+TARGET = accindicatorplugin
+CONFIG += plugin
+CONFIG += hb
+INCLUDEPATH += .
+DEPENDPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+
+# Input
+HEADERS += inc/accindicator.h
+SOURCES += src/accindicator.cpp
+RESOURCES = 
+symbian { 
+    TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    SYMBIAN_PLATFORMS = WINSCW ARMV5
+    TARGET.UID3 = 0x2001FE6C
+    pluginstub.sources = accindicatorplugin.dll
+    pluginstub.path = /resource/plugins/indicators
+    DEPLOYMENT += pluginstub
+}
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "rom/accindicatorplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(accindicatorplugin.iby)" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/accindicatorsettings.pro	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,43 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Sun Apr 11 14:15:37 2010
+######################################################################
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += . inc resources src
+INCLUDEPATH += .
+CONFIG += Hb
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+
+# Input
+HEADERS += inc/tvoutview.h inc/headsetttyview.h
+SOURCES += src/main.cpp src/tvoutview.cpp src/headsetttyview.cpp
+RESOURCES += resources/resources.qrc
+
+LIBS += -lcentralrepository
+LIBS += -laccclient
+LIBS += -lacccontrol
+
+symbian { 
+TARGET.UID3 = 0x2002EA56
+SYMBIAN_PLATFORMS = WINSCW ARMV5
+
+incBlock = \
+     "$${LITERAL_HASH}if ( defined (__WINS__) || defined (WINSCW) )" \
+     "LIBRARY gsserverenginestub.lib " \
+     "$${LITERAL_HASH}else " \
+     "LIBRARY gsserverengine.lib " \
+     "$${LITERAL_HASH}endif"
+ 
+     MMP_RULES += incBlock
+	}
+
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "rom/accindicatorsettings.iby CORE_MW_LAYER_IBY_EXPORT_PATH(accindicatorsettings.iby)" \
+    "conf/GSAccessoriesPlugin.confml            MW_LAYER_CONFML(gsaccessoriesplugin.confml)" \
+    "conf/GSAccessoriesPlugin_101F877D.crml     MW_LAYER_CRML(gsaccessoriesplugin_101F877D.crml)" \
+    "conf/GSAccessoriesPlugin_101F8779.crml     MW_LAYER_CRML(gsaccessoriesplugin_101F8779.crml)" \
+    "conf/GSAccessoriesPlugin_1020730B.crml     MW_LAYER_CRML(gsaccessoriesplugin_1020730B.crml)" \
+		"conf/GSAccessoriesPlugin_10207194.crml     MW_LAYER_CRML(gsaccessoriesplugin_10207194.crml)" \
+		"cenrep/AccessoriesCRKeys.h    MW_LAYER_PLATFORM_EXPORT_PATH( accessoriescrkeys.h )" \
+    "resources/wired_accessory.svg /epoc32/data/z/resource/accindicator/wired_accessory.svg" \
+    "resources/wireless_accessory.svg /epoc32/data/z/resource/accindicator/wireless_accessory.svg"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/cenrep/AccessoriesCRKeys.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,311 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Header file for central repository keys, used in GSAccessoryPlugin, and GSServerEngine
+*
+*/
+
+#ifndef ACCESSORIESCRKEYS_H
+#define ACCESSORIESCRKEYS_H
+
+#include <e32def.h>
+
+/**
+* Accessory settings CR UID
+*/
+const TUid KCRUidAccessorySettings = {0x101F8779};
+
+/**
+* Automatic answer in carkit
+*
+* Possible values are:
+* 0 = No automatic answer in headset
+* 1 = Automatic answer in headset
+*/
+const TUint32 KSettingsCarKitAutomaticAnswer = 0x00000001;
+
+/**
+* Automatic answer in headset
+*
+* Possible values are:
+* 0 = No automatic answer in headset
+* 1 = Automatic answer in headset
+*/
+const TUint32 KSettingsHeadsetAutomaticAnswer = 0x00000002;
+
+/**
+* Automatic answer in bluetooth
+*
+* Possible values are:
+* 0 = No automatic answer in bluetooth
+* 1 = Automatic answer in bluetooth
+*/
+const TUint32 KSettingsBTAudioAutomaticAnswer = 0x00000003;
+
+/**
+* Information about if the loopset is in use.
+*
+* Possible values are:
+* 0 = Loopset is not in use
+* 1 = Loopset is in use
+*/
+const TUint32 KSettingsLoopsetInUse = 0x00000004;
+
+/**
+* Automatic answer in loopset
+*
+* Possible values are:
+* 0 = No automatic answer in loopset
+* 1 = Automatic answer in loopset
+*/
+const TUint32 KSettingsLoopsetAutomaticAnswer = 0x00000005;
+
+/**
+* Information about which accessory is in use.
+*
+* Possible values are:
+* 0 = headset
+* 1 = loopset
+* 2 = TTY
+**/
+const TUint32 KSettingsAccessoryInUse =  0x00000006;
+
+/**
+* Automatic answer in music stand
+*
+* Possible values are:
+* 0 = No automatic answer in music stand
+* 1 = Automatic answer in music stand
+*/
+const TUint32 KSettingsMusicStandAutomaticAnswer =  0x00000007;
+
+/**
+* Automatic answer in car kit
+*
+* Possible values are:
+* 0 = No automatic answer in car kit
+* 1 = Automatic answer in car kit
+*/
+const TUint32 KSettingsTTYAutomaticAnswer =  0x00000008;
+
+/**
+* Use loopset
+*
+* Possible values are:
+* 0 = Loopset not in use
+* 1 = Loopset in use
+*/
+const TUint32 KSettingsUseLoopset =  0x00000009;
+
+/**
+* Wireless Carkit automatic answer
+*
+* Possible values are:
+* 0 = Automatic answer is off
+* 1 = Automatic answer is on
+*/
+const TUint32 KSettingsWirelessCarkitAutomaticAnswer =  0x00000010;
+
+/**
+* Headset Ringing Tone Routing
+*
+* Possible values are:
+* 0 = Routing is Headset and Handset
+* 1 = Routing is Headset
+*/
+const TUint32 KSettingsHeadsetRingingToneRouting = 0x00000011;
+
+/**
+* Headphones Ringing Tone Routing
+*
+* Possible values are:
+* 0 = Routing is Headset and Handset
+* 1 = Routing is Headset
+*/
+const TUint32 KSettingsHeadphonesRingingToneRouting = 0x00000012;
+
+/**
+* Default Accessory.
+* Possible values are:
+* 0 = Headset
+* 1 = Headphones
+* 2 = Wired Car kit
+* 3 = Wireless carkit
+* 4 = Music Stand
+* 5 = Tvout
+* 6 = Loopset
+* 7 = Textphone
+*/
+const TUint32 KSettingsAccDefaultInfo = 0x00000013;
+
+/**
+* Wired carkit accessory support
+*
+* Possible values are:
+* 0 = accessory is not supported
+* 1 = accessory is supported
+*/
+const TUint32 KSettingsAccWiredCarkitSupported = 0x00000014;
+
+/**
+* Wireless carkit accessory support
+*
+* Possible values are:
+* 0 = accessory is not supported
+* 1 = accessory is supported
+*/
+const TUint32 KSettingsAccWirelessCarkitSupported = 0x00000015;
+
+/**
+* Loopset accessory support
+*
+* Possible values are:
+* 0 = accessory is not supported
+* 1 = accessory is supported
+*/
+const TUint32 KSettingsAccLoopsetSupported = 0x00000016;
+
+/**
+* Profile settings CR UID.
+*/
+const TUid KCRUidProfileSettings = {0x101F877D};
+
+/**
+* Bluetooth default profile, profile id.
+*
+*/
+const TUint32 KSettingsBTDefaultProfile = 0x00000001;
+
+/**
+* Headset default profile, profile id.
+*/
+const TUint32 KSettingsHeadsetDefaultProfile = 0x00000002;
+
+/**
+* TTY default profile, profile id.
+*/
+const TUint32 KSettingsTTYDefaultProfile = 0x00000003;
+
+/**
+* Loopset default profile, profile id.
+*/
+const TUint32 KSettingsLoopsetDefaultProfile = 0x00000004;
+
+/**
+* Music Stand default profile, profile id.
+*/
+const TUint32 KSettingsMusicStandDefaultProfile = 0x00000005;
+
+/**
+* Car Kit default profile, profile id.
+*/
+const TUint32 KSettingsCarKitDefaultProfile = 0x00000006;
+
+/**
+* Wireless Car Kit default profile, profile id.
+*/
+const TUint32 KSettingsWirelessCarkitDefaultProfile = 0x00000007;
+
+/**
+* Headphones default profile, profile id.
+*/
+const TUint32 KSettingsHeadphonesDefaultProfile = 0x00000008;
+
+/**
+* Tv out default profile, profile id.
+*/
+const TUint32 KSettingsTvOutDefaultProfile = 0x00000009;
+
+/**
+* Settings for Lights features
+*/
+const TUid KCRUidAccessoryLightSettings = {0x10207194};
+
+/**
+* Defines the display light duration for Music Stand accessory.
+*
+* 0 = (Normal)
+* 1 = (Always ON)
+*/
+const TUint32 KSettingsMusicStandLights = 0x00000001;
+
+/**
+* Defines the display light duration for Car kit accessory.
+*
+* 0 = (Normal)
+* 1 = (Always ON)
+*/
+const TUint32 KSettingsCarKitLights = 0x00000002;
+
+
+/** Following keys belong to category KCRUidTvoutSettings  */
+
+/**
+* TV-out settings CR UID
+*/
+const TUid KCRUidTvoutSettings = {0x1020730B};
+
+/**
+* TV-out aspect ratio.
+* Possible values are:
+* 0 = 4x3
+* 1 = 16x9
+*/
+const TUint32 KSettingsTvAspectRatio = 0x00000001;
+
+/**
+* TV-out system info.
+* Possible values are:
+* 0 = PAL
+* 1 = PALM
+* 2 = NTSC
+*/
+const TUint32 KSettingsTvSystemInfo = 0x00000002;
+
+/**
+* TV-out default text.
+* String value.
+*/
+const TUint32 KSettingsTvDefaultText = 0x00000003;
+
+
+/**
+* TV-out Flicker Filter.
+* Possible values are:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsTvoutFlickerFilter = 0x00000004;
+
+/**
+* TV-out Horizontal overscan
+* Default value: 500
+*/
+const TUint32 KSettingsTvoutHorizontalOverscan = 0x00000005;
+
+/**
+* TV-out Vertical overscan
+* Default value: 500
+*/
+const TUint32 KSettingsTvoutVerticalOverscan = 0x00000006;
+
+/**
+* PALM option visibility
+* 0 = not visible (default)
+* 1 = visible
+*/
+const TUint32 KSettingsTvoutPalmVisibility = 0x00000007;
+
+
+
+#endif // ACCESSORIESCRKEYS_H
Binary file systemsettings/accindicatorplugin/accindicatorsettings/conf/GSAccessoriesPlugin.confml has changed
Binary file systemsettings/accindicatorplugin/accindicatorsettings/conf/GSAccessoriesPlugin_101F8779.crml has changed
Binary file systemsettings/accindicatorplugin/accindicatorsettings/conf/GSAccessoriesPlugin_101F877D.crml has changed
Binary file systemsettings/accindicatorplugin/accindicatorsettings/conf/GSAccessoriesPlugin_10207194.crml has changed
Binary file systemsettings/accindicatorplugin/accindicatorsettings/conf/GSAccessoriesPlugin_1020730B.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/inc/headsetttyview.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef HEADSETTTYVIEW_H
+#define HEADSETTTYVIEW_H
+
+#include <hbmainwindow.h>
+#include <QObject>
+#include <centralrepository.h>
+#include <AccessorySettings.h>
+#include <AccessoryServer.h>
+
+class CRepository;
+class CGSServerEngine;
+
+class HeadsetTtyView : public QObject
+    {
+    Q_OBJECT
+
+public:
+    HeadsetTtyView(HbMainWindow *window,int);
+    ~HeadsetTtyView();
+
+private slots:
+    void currentIndexModified(int);
+private:
+	int currentValue;
+	TInt defaultaccessory;
+	
+	// Handle to the Central Repository.
+    CRepository*    iAccessoryRepository;
+
+    /** Accessory server connection. */
+    RAccessoryServer iAccServer;
+
+    /** Accessory settings connection. */
+    RAccessorySettings iAccessorySettings;
+
+public:
+    };
+
+#endif // HEADSETTTYVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/inc/tvoutview.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *
+ */
+
+#ifndef TVOUTVIEW_H
+#define TVOUTVIEW_H
+
+#include <hbmainwindow.h>
+#include <QObject>
+#include <GSServerEngine.h>
+
+class TvOutView : public QObject
+    {
+    Q_OBJECT
+
+public:
+    TvOutView(HbMainWindow *window,int);
+    ~TvOutView();
+
+private slots:
+    void currentIndexModified(int);
+private:
+	int currentValue;
+	CGSServerEngine* iServerEngine;
+	
+public:
+    };
+
+#endif // TVOUTVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/headset.docml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<hbdocument version="0.4">
+    <widget name="view" type="HbView">
+        <widget name="content_1" role="HbView:widget" type="HbWidget">
+            <widget name="container" type="HbWidget">
+                <widget name="container_1" type="HbWidget">
+                    <widget name="image" type="HbLabel">
+                        <icon iconName=":/images/flower2.png" name="icon"/>
+                        <sizehint height="5.223880745727788un" type="PREFERRED" width="7.014925572834458un"/>
+                    </widget>
+                    <widget name="label" type="HbLabel">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="14.925373559222251un"/>
+                        <string name="text" value="Headset"/>
+                        <zvalue value="1.0"/>
+                    </widget>
+                    <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                    <zvalue value="0.0"/>
+                    <layout type="anchor" widget="container_1">
+                        <anchoritem dst="image" dstEdge="LEFT" spacing="0.7462713220388874un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="image" dstEdge="BOTTOM" spacing="-6.368150860990008un" src="" srcEdge="BOTTOM"/>
+                        <anchoritem dst="label" dstEdge="LEFT" spacing="9.701492813494463un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="label" dstEdge="TOP" spacing="3.283582183028895un" src="" srcEdge="TOP"/>
+                    </layout>
+                </widget>
+                <widget name="container_2" type="HbWidget">
+                    <widget name="label_2" type="HbLabel">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="14.925373559222251un"/>
+                        <string name="text" value="Accesory type"/>
+                        <zvalue value="1.0"/>
+                    </widget>
+                    <widget name="label_3" type="HbLabel">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="14.925373559222251un"/>
+                        <zvalue value="2.0"/>
+                    </widget>
+                    <widget name="combobox" type="HbComboBox">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="27.1641798777845un"/>
+                        <zvalue value="3.0"/>
+                    </widget>
+                    <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                    <zvalue value="0.0"/>
+                    <layout type="anchor" widget="container_2">
+                        <anchoritem dst="label_2" dstEdge="LEFT" spacing="1.3432836203300027un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="label_2" dstEdge="TOP" spacing="-0.44776120677666753un" src="" srcEdge="TOP"/>
+                        <anchoritem dst="label_3" dstEdge="LEFT" spacing="1.19402988473778un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="label_3" dstEdge="BOTTOM" spacing="-0.6467661875662969un" src="" srcEdge="BOTTOM"/>
+                        <anchoritem dst="combobox" dstEdge="RIGHT" spacing="-21.194030454095596un" src="" srcEdge="RIGHT"/>
+                        <anchoritem dst="combobox" dstEdge="BOTTOM" spacing="-5.373134481320008un" src="" srcEdge="BOTTOM"/>
+                    </layout>
+                </widget>
+                <sizehint height="32.68656809469673un" type="PREFERRED" width="52.23880745727788un"/>
+                <zvalue value="0.0"/>
+                <layout orientation="Vertical" type="linear">
+                    <linearitem itemname="container_1"/>
+                    <linearitem itemname="container_2"/>
+                </layout>
+            </widget>
+            <zvalue value="0.0"/>
+            <layout type="anchor" widget="content_1">
+                <anchoritem dst="container" dstEdge="LEFT" spacing="0.59701un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="container" dstEdge="TOP" spacing="0.0un" src="" srcEdge="TOP"/>
+            </layout>
+        </widget>
+        <string name="title" value="Accessory"/>
+    </widget>
+    <metadata display="QHD portrait" unit="un"/>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/qtg_large_wire_connect.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
+<defs>
+</defs>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="29.9995" y1="37.8149" x2="29.9995" y2="57.768">
+	<stop  offset="0" style="stop-color:#707070"/>
+	<stop  offset="0.7939" style="stop-color:#080808"/>
+	<stop  offset="1" style="stop-color:#585858"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M12.208,58c-0.875,0-1.592-0.717-1.592-1.594L9.022,43.764c0-0.875,0.682-1.814,1.516-2.084
+	l10.381-3.373c0.833-0.27,2.232-0.492,3.108-0.492h11.944c0.877,0,2.275,0.223,3.109,0.492l10.381,3.373
+	c0.834,0.27,1.516,1.209,1.516,2.084l-1.594,12.643c0,0.877-0.715,1.594-1.592,1.594H12.208z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.0005" y1="38.6118" x2="30.0005" y2="56.9895">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="1" style="stop-color:#1A1A1A"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M12.208,57.204c-0.438,0-0.796-0.357-0.796-0.797L9.819,43.764c0-0.531,0.46-1.164,0.965-1.328
+	l10.366-3.367c0.773-0.248,2.084-0.457,2.878-0.457h11.944c0.795,0,2.105,0.209,2.863,0.455l10.396,3.375
+	c0.49,0.158,0.951,0.791,0.951,1.322l-1.594,12.643c0,0.439-0.357,0.797-0.797,0.797H12.208z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="30" y1="40.2036" x2="30" y2="55.4324">
+	<stop  offset="0" style="stop-color:#707070"/>
+	<stop  offset="1" style="stop-color:#323232"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M13.005,55.61l-1.593-11.699l10.198-3.314c0.638-0.207,1.782-0.393,2.418-0.393h11.944
+	c0.637,0,1.766,0.18,2.371,0.377l10.246,3.332L46.997,55.61H13.005z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="25.5205" y1="8.5112" x2="34.4795" y2="8.5112">
+	<stop  offset="0" style="stop-color:#A8B1B3"/>
+	<stop  offset="0.3818" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7091" style="stop-color:#686E70"/>
+	<stop  offset="1" style="stop-color:#A6B0B3"/>
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="30.474,2 29.452,2 25.521,5.596 25.521,15.022 34.479,15.022 34.479,5.596 "/>
+<polygon opacity="0.6" fill="#FFFFFF" points="30.474,2 29.452,2 25.521,5.596 25.521,6.391 29.452,2.796 30.474,2.796 
+	34.479,6.391 34.479,5.596 "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="26.0845" x2="35.1768" y2="26.0845">
+	<stop  offset="0" style="stop-color:#A8B1B3"/>
+	<stop  offset="0.3818" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7091" style="stop-color:#686E70"/>
+	<stop  offset="1" style="stop-color:#A6B0B3"/>
+</linearGradient>
+<rect x="24.824" y="14.354" fill="url(#SVGID_5_)" width="10.353" height="23.46"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="22.1709" x2="35.1768" y2="22.1709">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.3818" style="stop-color:#7A7A7A"/>
+	<stop  offset="0.7091" style="stop-color:#1A1A1A"/>
+	<stop  offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<rect x="24.824" y="19.782" fill="url(#SVGID_6_)" width="10.353" height="4.777"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="29.0718" x2="35.1768" y2="29.0718">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.3818" style="stop-color:#7A7A7A"/>
+	<stop  offset="0.7091" style="stop-color:#1A1A1A"/>
+	<stop  offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<rect x="24.824" y="27.877" fill="url(#SVGID_7_)" width="10.353" height="2.389"/>
+<rect x="24.824" y="30.266" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="36.985" opacity="0.3" width="10.353" height="0.797"/>
+<rect x="24.824" y="36.19" opacity="0.15" width="10.353" height="0.795"/>
+<rect x="24.824" y="24.56" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.796"/>
+<rect x="24.824" y="14.354" opacity="0.6" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="15.948" opacity="0.15" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="15.152" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.796"/>
+<rect fill="none" width="60.001" height="60"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/qtg_large_wlan.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g>
+<rect fill="none" height="60" width="60"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="24.43" x2="35.83" y1="31.4" y2="31.4">
+<stop offset="0" stop-color="#DBDBDB"/>
+<stop offset="0.1" stop-color="#DBDBDB"/>
+<stop offset="0.68" stop-color="#919191"/>
+<stop offset="1" stop-color="#B8B8B8"/>
+</linearGradient>
+<path d="M35.525,46.779h-11l3-28.25c0-1.381,1.119-2.5,2.5-2.5l0,0c1.381,0,2.5,1.119,2.5,2.5 L35.525,46.779z" fill="url(#SVGID_1)"/>
+<polygon fill-opacity="0.2" points="24.724,44.779 35.327,44.779 35.228,43.779 24.823,43.779 "/>
+<polygon fill-opacity="0.1" points="24.823,43.779 35.228,43.779 35.129,42.779 24.922,42.779 "/>
+<polygon fill-opacity="0.3" points="24.624,45.779 35.427,45.779 35.327,44.779 24.724,44.779 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2" x1="15.62" x2="44.54" y1="48.81" y2="48.81">
+<stop offset="0" stop-color="#F2F2F2"/>
+<stop offset="1" stop-color="#919191"/>
+</linearGradient>
+<path d="M44.525,51.814v-3c0-1.657-1.344-3-3-3h-23c-1.656,0-3,1.343-3,3v3H44.525z" fill="url(#SVGID_2)"/>
+<path d="M41.525,45.814h-23c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h23c1.656,0,3,1.343,3,3v-1 C44.525,47.157,43.182,45.814,41.525,45.814z" fill="#FFFFFF" fill-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="13.24" x2="13.39" y1="8.21" y2="30.15">
+<stop offset="0" stop-color="#C6FF45"/>
+<stop offset="0.73" stop-color="#66A00E"/>
+<stop offset="1" stop-color="#387300"/>
+</linearGradient>
+<path d="M13.918,8.287l3.23,3.228c-4.215,4.214-4.213,11.071,0,15.285l-3.229,3.229 C7.926,24.033,7.926,14.281,13.918,8.287z" fill="url(#SVGID_3)"/>
+<path d="M21.246,12.379l3.229,3.228c-1.959,1.958-1.959,5.144,0,7.101l-3.229,3.229 C17.508,22.199,17.508,16.117,21.246,12.379z" fill="url(#SVGID_3)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5" x1="13.29" x2="13.29" y1="29.77" y2="4.35">
+<stop offset="0" stop-color="#AAE535"/>
+<stop offset="1" stop-color="#5D9C0A"/>
+</linearGradient>
+<path d="M13.92,29.029c-2.87-2.871-4.351-6.604-4.472-10.372c-0.133,4.102,1.348,8.246,4.472,11.372 l3.229-3.229c-0.169-0.169-0.319-0.349-0.475-0.525L13.92,29.029z" fill="url(#SVGID_5)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6" x1="21.46" x2="21.46" y1="25.95" y2="13.77">
+<stop offset="0" stop-color="#AAE535"/>
+<stop offset="1" stop-color="#5D9C0A"/>
+</linearGradient>
+<path d="M21.246,24.936c-1.742-1.741-2.661-3.992-2.78-6.278c-0.136,2.619,0.784,5.283,2.78,7.278 l3.229-3.229c-0.171-0.171-0.309-0.362-0.449-0.55L21.246,24.936z" fill="url(#SVGID_6)"/>
+<path d="M13.918,9.287l2.756,2.753c0.155-0.177,0.306-0.356,0.475-0.525l-3.23-3.228 c-3.123,3.124-4.603,7.269-4.47,11.37C9.569,15.889,11.049,12.157,13.918,9.287z" fill="#FFFFFF" fill-opacity="0.6"/>
+<path d="M21.246,13.379l2.779,2.778c0.141-0.188,0.278-0.379,0.449-0.551l-3.229-3.228 c-1.996,1.996-2.916,4.66-2.78,7.278C18.585,17.372,19.504,15.121,21.246,13.379z" fill="#FFFFFF" fill-opacity="0.6"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7" x1="46.76" x2="46.61" y1="8.21" y2="30.15">
+<stop offset="0" stop-color="#C6FF45"/>
+<stop offset="0.73" stop-color="#66A00E"/>
+<stop offset="1" stop-color="#387300"/>
+</linearGradient>
+<path d="M46.082,8.287l-3.23,3.228c4.215,4.214,4.213,11.071,0,15.285l3.229,3.229 C52.074,24.033,52.074,14.281,46.082,8.287z" fill="url(#SVGID_7)"/>
+<path d="M38.754,12.379l-3.229,3.228c1.959,1.958,1.959,5.144,0,7.101l3.229,3.229 C42.492,22.199,42.492,16.117,38.754,12.379z" fill="url(#SVGID_7)"/>
+<path d="M46.08,29.029c2.87-2.871,4.351-6.604,4.472-10.372c0.133,4.102-1.348,8.246-4.472,11.372 L42.852,26.8c0.169-0.169,0.319-0.349,0.475-0.525L46.08,29.029z" fill="url(#SVGID_5)"/>
+<path d="M38.754,24.936c1.742-1.741,2.661-3.992,2.78-6.278c0.136,2.619-0.784,5.283-2.78,7.278 l-3.229-3.229c0.171-0.171,0.309-0.362,0.449-0.55L38.754,24.936z" fill="url(#SVGID_6)"/>
+<path d="M46.082,9.287l-2.756,2.753c-0.155-0.177-0.306-0.356-0.475-0.525l3.23-3.228 c3.123,3.124,4.603,7.269,4.47,11.37C50.431,15.889,48.951,12.157,46.082,9.287z" fill="#FFFFFF" fill-opacity="0.6"/>
+<path d="M38.754,13.379l-2.779,2.778c-0.141-0.188-0.278-0.379-0.449-0.551l3.229-3.228 c1.996,1.996,2.916,4.66,2.78,7.278C41.415,17.372,40.496,15.121,38.754,13.379z" fill="#FFFFFF" fill-opacity="0.6"/>
+<rect fill-opacity="0.1" height="1" width="29" x="15.525" y="50.814"/>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/resources.qrc	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,10 @@
+<RCC>
+    <qresource prefix="/xml" >
+        <file alias="headset.docml" >headset.docml</file>
+        <file alias="tvout.docml" >tvout.docml</file>
+    </qresource>
+    <qresource prefix="/images" >
+        <file>wired_accessory.svg</file>
+        <file>wireless_accessory.svg</file>
+    </qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/tvout.docml	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<hbdocument version="0.4">
+    <widget name="view" type="HbView">
+        <widget name="content_1" role="HbView:widget" type="HbWidget">
+            <widget name="container" type="HbWidget">
+                <widget name="container_1" type="HbWidget">
+                    <widget name="image" type="HbLabel">
+                        <icon iconName=":/images/wired_accessory.svg" name="icon"/>
+                        <sizehint height="5.223880745727788un" type="PREFERRED" width="7.014925572834458un"/>
+                    </widget>
+                    <widget name="label" type="HbLabel">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="14.925373559222251un"/>
+                        <string name="text" value="TV Out"/>
+                        <zvalue value="1.0"/>
+                    </widget>
+                    <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                    <zvalue value="0.0"/>
+                    <layout type="anchor" widget="container_1">
+                        <anchoritem dst="image" dstEdge="LEFT" spacing="0.7462713220388874un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="image" dstEdge="BOTTOM" spacing="-5.323374711844449un" src="" srcEdge="BOTTOM"/>
+                        <anchoritem dst="label" dstEdge="LEFT" spacing="12.089552582970024un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="label" dstEdge="TOP" spacing="3.1343284474366726un" src="" srcEdge="TOP"/>
+                    </layout>
+                </widget>
+                <widget name="container_3" type="HbWidget">
+                    <widget name="label_4" type="HbLabel">
+                        <sizehint height="4.4776120677666755un" type="PREFERRED" width="19.850746833765594un"/>
+                        <string name="text" value="TV Aspect Ratio"/>
+                        <zvalue value="1.0"/>
+                    </widget>
+                    <widget name="combobox" type="HbComboBox">
+                        <sizehint height="5.970149423688901un" type="PREFERRED" width="26.71641867100783un"/>
+                        <zvalue value="2.0"/>
+                    </widget>
+                    <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                    <zvalue value="0.0"/>
+                    <layout type="anchor" widget="container_3">
+                        <anchoritem dst="label_4" dstEdge="LEFT" spacing="2.089552298291115un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="label_4" dstEdge="TOP" spacing="0.2985074711844451un" src="" srcEdge="TOP"/>
+                        <anchoritem dst="combobox" dstEdge="LEFT" spacing="2.089552298291115un" src="" srcEdge="LEFT"/>
+                        <anchoritem dst="combobox" dstEdge="BOTTOM" spacing="-1.9402985626988927un" src="" srcEdge="BOTTOM"/>
+                    </layout>
+                </widget>
+                <sizehint height="31.044777003182283un" type="PREFERRED" width="52.23880745727788un"/>
+                <zvalue value="0.0"/>
+                <layout orientation="Vertical" type="linear">
+                    <linearitem itemname="container_1"/>
+                    <linearitem itemname="container_3"/>
+                </layout>
+            </widget>
+            <zvalue value="0.0"/>
+            <layout type="anchor" widget="content_1">
+                <anchoritem dst="container" dstEdge="LEFT" spacing="0.59701un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="container" dstEdge="TOP" spacing="0.0un" src="" srcEdge="TOP"/>
+            </layout>
+        </widget>
+        <string name="title" value="Accessory"/>
+    </widget>
+    <metadata display="QHD portrait" unit="un"/>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/wired_accessory.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
+<defs>
+</defs>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="29.9995" y1="37.8149" x2="29.9995" y2="57.768">
+	<stop  offset="0" style="stop-color:#707070"/>
+	<stop  offset="0.7939" style="stop-color:#080808"/>
+	<stop  offset="1" style="stop-color:#585858"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M12.208,58c-0.875,0-1.592-0.717-1.592-1.594L9.022,43.764c0-0.875,0.682-1.814,1.516-2.084
+	l10.381-3.373c0.833-0.27,2.232-0.492,3.108-0.492h11.944c0.877,0,2.275,0.223,3.109,0.492l10.381,3.373
+	c0.834,0.27,1.516,1.209,1.516,2.084l-1.594,12.643c0,0.877-0.715,1.594-1.592,1.594H12.208z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.0005" y1="38.6118" x2="30.0005" y2="56.9895">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="1" style="stop-color:#1A1A1A"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M12.208,57.204c-0.438,0-0.796-0.357-0.796-0.797L9.819,43.764c0-0.531,0.46-1.164,0.965-1.328
+	l10.366-3.367c0.773-0.248,2.084-0.457,2.878-0.457h11.944c0.795,0,2.105,0.209,2.863,0.455l10.396,3.375
+	c0.49,0.158,0.951,0.791,0.951,1.322l-1.594,12.643c0,0.439-0.357,0.797-0.797,0.797H12.208z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="30" y1="40.2036" x2="30" y2="55.4324">
+	<stop  offset="0" style="stop-color:#707070"/>
+	<stop  offset="1" style="stop-color:#323232"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M13.005,55.61l-1.593-11.699l10.198-3.314c0.638-0.207,1.782-0.393,2.418-0.393h11.944
+	c0.637,0,1.766,0.18,2.371,0.377l10.246,3.332L46.997,55.61H13.005z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="25.5205" y1="8.5112" x2="34.4795" y2="8.5112">
+	<stop  offset="0" style="stop-color:#A8B1B3"/>
+	<stop  offset="0.3818" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7091" style="stop-color:#686E70"/>
+	<stop  offset="1" style="stop-color:#A6B0B3"/>
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="30.474,2 29.452,2 25.521,5.596 25.521,15.022 34.479,15.022 34.479,5.596 "/>
+<polygon opacity="0.6" fill="#FFFFFF" points="30.474,2 29.452,2 25.521,5.596 25.521,6.391 29.452,2.796 30.474,2.796 
+	34.479,6.391 34.479,5.596 "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="26.0845" x2="35.1768" y2="26.0845">
+	<stop  offset="0" style="stop-color:#A8B1B3"/>
+	<stop  offset="0.3818" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7091" style="stop-color:#686E70"/>
+	<stop  offset="1" style="stop-color:#A6B0B3"/>
+</linearGradient>
+<rect x="24.824" y="14.354" fill="url(#SVGID_5_)" width="10.353" height="23.46"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="22.1709" x2="35.1768" y2="22.1709">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.3818" style="stop-color:#7A7A7A"/>
+	<stop  offset="0.7091" style="stop-color:#1A1A1A"/>
+	<stop  offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<rect x="24.824" y="19.782" fill="url(#SVGID_6_)" width="10.353" height="4.777"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="24.8237" y1="29.0718" x2="35.1768" y2="29.0718">
+	<stop  offset="0" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.3818" style="stop-color:#7A7A7A"/>
+	<stop  offset="0.7091" style="stop-color:#1A1A1A"/>
+	<stop  offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<rect x="24.824" y="27.877" fill="url(#SVGID_7_)" width="10.353" height="2.389"/>
+<rect x="24.824" y="30.266" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="36.985" opacity="0.3" width="10.353" height="0.797"/>
+<rect x="24.824" y="36.19" opacity="0.15" width="10.353" height="0.795"/>
+<rect x="24.824" y="24.56" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.796"/>
+<rect x="24.824" y="14.354" opacity="0.6" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="15.948" opacity="0.15" fill="#FFFFFF" width="10.353" height="0.797"/>
+<rect x="24.824" y="15.152" opacity="0.3" fill="#FFFFFF" width="10.353" height="0.796"/>
+<rect fill="none" width="60.001" height="60"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/resources/wireless_accessory.svg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g>
+<rect fill="none" height="60" width="60"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="24.43" x2="35.83" y1="31.4" y2="31.4">
+<stop offset="0" stop-color="#DBDBDB"/>
+<stop offset="0.1" stop-color="#DBDBDB"/>
+<stop offset="0.68" stop-color="#919191"/>
+<stop offset="1" stop-color="#B8B8B8"/>
+</linearGradient>
+<path d="M35.525,46.779h-11l3-28.25c0-1.381,1.119-2.5,2.5-2.5l0,0c1.381,0,2.5,1.119,2.5,2.5 L35.525,46.779z" fill="url(#SVGID_1)"/>
+<polygon fill-opacity="0.2" points="24.724,44.779 35.327,44.779 35.228,43.779 24.823,43.779 "/>
+<polygon fill-opacity="0.1" points="24.823,43.779 35.228,43.779 35.129,42.779 24.922,42.779 "/>
+<polygon fill-opacity="0.3" points="24.624,45.779 35.427,45.779 35.327,44.779 24.724,44.779 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2" x1="15.62" x2="44.54" y1="48.81" y2="48.81">
+<stop offset="0" stop-color="#F2F2F2"/>
+<stop offset="1" stop-color="#919191"/>
+</linearGradient>
+<path d="M44.525,51.814v-3c0-1.657-1.344-3-3-3h-23c-1.656,0-3,1.343-3,3v3H44.525z" fill="url(#SVGID_2)"/>
+<path d="M41.525,45.814h-23c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h23c1.656,0,3,1.343,3,3v-1 C44.525,47.157,43.182,45.814,41.525,45.814z" fill="#FFFFFF" fill-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="13.24" x2="13.39" y1="8.21" y2="30.15">
+<stop offset="0" stop-color="#C6FF45"/>
+<stop offset="0.73" stop-color="#66A00E"/>
+<stop offset="1" stop-color="#387300"/>
+</linearGradient>
+<path d="M13.918,8.287l3.23,3.228c-4.215,4.214-4.213,11.071,0,15.285l-3.229,3.229 C7.926,24.033,7.926,14.281,13.918,8.287z" fill="url(#SVGID_3)"/>
+<path d="M21.246,12.379l3.229,3.228c-1.959,1.958-1.959,5.144,0,7.101l-3.229,3.229 C17.508,22.199,17.508,16.117,21.246,12.379z" fill="url(#SVGID_3)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5" x1="13.29" x2="13.29" y1="29.77" y2="4.35">
+<stop offset="0" stop-color="#AAE535"/>
+<stop offset="1" stop-color="#5D9C0A"/>
+</linearGradient>
+<path d="M13.92,29.029c-2.87-2.871-4.351-6.604-4.472-10.372c-0.133,4.102,1.348,8.246,4.472,11.372 l3.229-3.229c-0.169-0.169-0.319-0.349-0.475-0.525L13.92,29.029z" fill="url(#SVGID_5)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6" x1="21.46" x2="21.46" y1="25.95" y2="13.77">
+<stop offset="0" stop-color="#AAE535"/>
+<stop offset="1" stop-color="#5D9C0A"/>
+</linearGradient>
+<path d="M21.246,24.936c-1.742-1.741-2.661-3.992-2.78-6.278c-0.136,2.619,0.784,5.283,2.78,7.278 l3.229-3.229c-0.171-0.171-0.309-0.362-0.449-0.55L21.246,24.936z" fill="url(#SVGID_6)"/>
+<path d="M13.918,9.287l2.756,2.753c0.155-0.177,0.306-0.356,0.475-0.525l-3.23-3.228 c-3.123,3.124-4.603,7.269-4.47,11.37C9.569,15.889,11.049,12.157,13.918,9.287z" fill="#FFFFFF" fill-opacity="0.6"/>
+<path d="M21.246,13.379l2.779,2.778c0.141-0.188,0.278-0.379,0.449-0.551l-3.229-3.228 c-1.996,1.996-2.916,4.66-2.78,7.278C18.585,17.372,19.504,15.121,21.246,13.379z" fill="#FFFFFF" fill-opacity="0.6"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7" x1="46.76" x2="46.61" y1="8.21" y2="30.15">
+<stop offset="0" stop-color="#C6FF45"/>
+<stop offset="0.73" stop-color="#66A00E"/>
+<stop offset="1" stop-color="#387300"/>
+</linearGradient>
+<path d="M46.082,8.287l-3.23,3.228c4.215,4.214,4.213,11.071,0,15.285l3.229,3.229 C52.074,24.033,52.074,14.281,46.082,8.287z" fill="url(#SVGID_7)"/>
+<path d="M38.754,12.379l-3.229,3.228c1.959,1.958,1.959,5.144,0,7.101l3.229,3.229 C42.492,22.199,42.492,16.117,38.754,12.379z" fill="url(#SVGID_7)"/>
+<path d="M46.08,29.029c2.87-2.871,4.351-6.604,4.472-10.372c0.133,4.102-1.348,8.246-4.472,11.372 L42.852,26.8c0.169-0.169,0.319-0.349,0.475-0.525L46.08,29.029z" fill="url(#SVGID_5)"/>
+<path d="M38.754,24.936c1.742-1.741,2.661-3.992,2.78-6.278c0.136,2.619-0.784,5.283-2.78,7.278 l-3.229-3.229c0.171-0.171,0.309-0.362,0.449-0.55L38.754,24.936z" fill="url(#SVGID_6)"/>
+<path d="M46.082,9.287l-2.756,2.753c-0.155-0.177-0.306-0.356-0.475-0.525l3.23-3.228 c3.123,3.124,4.603,7.269,4.47,11.37C50.431,15.889,48.951,12.157,46.082,9.287z" fill="#FFFFFF" fill-opacity="0.6"/>
+<path d="M38.754,13.379l-2.779,2.778c-0.141-0.188-0.278-0.379-0.449-0.551l3.229-3.228 c1.996,1.996,2.916,4.66,2.78,7.278C41.415,17.372,40.496,15.121,38.754,13.379z" fill="#FFFFFF" fill-opacity="0.6"/>
+<rect fill-opacity="0.1" height="1" width="29" x="15.525" y="50.814"/>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/rom/accindicatorsettings.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __ACCINDICATORSETTINGS_IBY__
+#define __ACCINDICATORSETTINGS_IBY__
+
+REM DLL
+file = ABI_DIR\BUILD_DIR\accindicatorsettings.exe  \sys\bin\accindicatorsettings.exe
+data = \epoc32\data\z\resource\apps\accindicatorsettings.rsc    \resource\apps\accindicatorsettings.rsc
+data = \epoc32\data\z\private\10003a3f\import\apps\accindicatorsettings_reg.rsc   \private\10003a3f\import\apps\accindicatorsettings_reg.rsc
+data=\epoc32\data\z\resource\accindicator\wired_accessory.svg   \resource\accindicator\wired_accessory.svg
+data=\epoc32\data\z\resource\accindicator\wireless_accessory.svg   \resource\accindicator\wireless_accessory.svg
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/src/headsetttyview.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Name        : headsetttyview.cpp
+*
+* Description: 
+*        
+*
+*/
+
+#include <hbview.h>
+#include <hbdocumentloader.h>
+#include <hblabel.h>
+#include <hbcombobox.h>
+#include <accpolaccessorymode.h>
+#include <accpolgenericiddefinitions.h>
+#include <accessoriescrkeys.h>
+#include <AccessoryTypes.h>
+#include <QDebug>
+
+#include "headsetttyview.h"
+
+HeadsetTtyView::HeadsetTtyView(HbMainWindow *window,int accessoryType)
+    {
+    // Handle to the central repository.
+    iAccessoryRepository = CRepository::NewL( KCRUidAccessorySettings );
+    
+    TInt error = iAccServer.Connect();
+    if(error != KErrNone)
+        {
+        qDebug() << "Failed to connect to accessory server"; 
+        return;
+        }
+    error = iAccessorySettings.CreateSubSession( iAccServer );
+    if(error != KErrNone)
+        {
+        qDebug() << "Failed to connect to accessory sub session"; 
+        return;
+        }
+
+    HbDocumentLoader loader;
+    bool viewLoaded(false);
+    loader.load(":/xml/headset.docml", &viewLoaded);
+    Q_ASSERT_X(viewLoaded, "MainView", "Invalid xml file");
+
+    HbLabel *image;
+    HbLabel *acctype;
+    // set the image to be displayed.
+    if( accessoryType == KPCWired || accessoryType == KPCUSB ) //wired
+        {
+        image = qobject_cast<HbLabel*>(loader.findWidget("image"));
+        image->setIcon(HbIcon(":/images/wired_accessory.svg"));
+        }
+    else // wireless
+        {
+        image = qobject_cast<HbLabel*>(loader.findWidget("image"));
+        image->setIcon(HbIcon(":/images/wireless_accessory.svg"));
+        }
+
+    HbComboBox *comboHandler = qobject_cast<HbComboBox*>(loader.findWidget("combobox"));
+    QStringList comboItems;
+    comboItems <<"HeadSet" <<"TTY";
+    comboHandler->addItems(comboItems);
+    
+    connect(comboHandler , SIGNAL(currentIndexChanged(int)) , this , SLOT(currentIndexModified(int))); 
+
+    User::LeaveIfError( iAccessoryRepository->Get(KSettingsAccDefaultInfo, defaultaccessory ));    
+    
+    // set the name to be displayed along with the image.
+    if( defaultaccessory == 0) // HeadSet
+        {
+        acctype = qobject_cast<HbLabel*>(loader.findWidget("label"));
+        acctype->setPlainText("HeadSet");
+        acctype->setTextWrapping(Hb::TextWordWrap);
+        comboHandler->setCurrentIndex(0); // set headset as default
+        }
+    else
+        {
+        acctype = qobject_cast<HbLabel*>(loader.findWidget("label"));
+        acctype->setPlainText("TTY");
+        acctype->setTextWrapping(Hb::TextWordWrap);
+        comboHandler->setCurrentIndex(1); // set TTY as default
+        }    
+    
+    // heading for the combobox for user selection
+    acctype = qobject_cast<HbLabel*>(loader.findWidget("label_2"));
+    acctype->setPlainText("Accessory Type");
+    acctype->setTextWrapping(Hb::TextWordWrap);
+    
+    window->addView(loader.findWidget("view"));
+    }
+    
+HeadsetTtyView::~HeadsetTtyView()
+    {
+    iAccessorySettings.CloseSubSession();
+    iAccServer.Disconnect();
+    delete iAccessoryRepository;
+    }
+
+void HeadsetTtyView::currentIndexModified(int var)
+    {
+    if(var == 0) // make headset as default
+        {
+        User::LeaveIfError((iAccessoryRepository->Set(KSettingsAccDefaultInfo, 0))); // 0 is for Headset
+        iAccessorySettings.SetHWDeviceSettingsL( KASHeadset );
+        }
+    else
+        {
+        User::LeaveIfError((iAccessoryRepository->Set(KSettingsAccDefaultInfo, 7))); // 7 is for TTY
+        iAccessorySettings.SetHWDeviceSettingsL( KASTTY );
+        }
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/src/main.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Process launched by the accessory indicator plugin to 
+ * show the view and user can change the settings. 
+ *
+ */
+
+#include <hbapplication.h>
+
+#include "headsetttyview.h"
+#include "tvoutview.h"
+
+int main(int argc, char *argv[])
+    {
+    HbApplication app(argc, argv);
+    int retVal;
+    // Get the params from the process.
+    QStringList args(app.arguments());
+    int accessoryMode = QString(args.at(1)).toInt(); // HeadSet,TTY,TV-OUT
+    int accessoryType = QString(args.at(2)).toULong();// Wired or Wireless
+    
+    HbMainWindow *window = new HbMainWindow();
+    
+    // If accessory mode is Tv-Out load tvout.docml or else load headset.docml
+    QObject *view;
+    if( accessoryMode == EAccModeTVOut )
+        {
+        view = new TvOutView(window,accessoryType);
+        }
+    else
+        {
+        view = new HeadsetTtyView(window,accessoryType);
+        }
+    
+    window->show();
+    retVal = app.exec();
+    delete window;
+    delete view;
+    return retVal;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/accindicatorsettings/src/tvoutview.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Shows the view of the TV-OUT accessory. 
+ *
+ */
+
+#include "tvoutview.h"
+
+#include <hbdocumentloader.h>
+#include <hbapplication.h>
+#include <hblabel.h>
+#include <hbcombobox.h>
+#include <accpolaccessorymode.h>
+#include <accpolgenericiddefinitions.h>
+
+TvOutView::TvOutView(HbMainWindow *window,int accessoryType)
+    {
+    HbDocumentLoader loader;
+    bool viewLoaded(false);
+    loader.load(":/xml/tvout.docml", &viewLoaded);
+    Q_ASSERT_X(viewLoaded, "AccSettings", "Invalid docml file");
+
+    HbLabel *label;
+    if( accessoryType == KPCWired || accessoryType == KPCUSB ) // wired
+        {
+        label = qobject_cast<HbLabel*>(loader.findWidget("image"));
+        label->setIcon(HbIcon(":/images/wired_accessory.svg"));
+        }
+    else // wireless
+        {
+        label = qobject_cast<HbLabel*>(loader.findWidget("image"));
+        label->setIcon(HbIcon(":/images/wireless_accessory.svg"));
+        }
+    
+    label = qobject_cast<HbLabel*>(loader.findWidget("label"));
+    label->setPlainText("Tv-Out");
+    label->setTextWrapping(Hb::TextWordWrap);
+    
+    label = qobject_cast<HbLabel*>(loader.findWidget("label_4"));
+    label->setPlainText("TV Aspect Ratio");
+    label->setTextWrapping(Hb::TextWordWrap);
+
+    HbComboBox *comboHandler = qobject_cast<HbComboBox*>(loader.findWidget("combobox"));
+    
+    // prepare the list of items to be there in combobox.
+    QStringList comboItems;
+    comboItems <<"4:3" <<"16:9";
+    comboHandler->addItems(comboItems);
+        
+    //set the current index of combobox to the current AspectRatio.
+    iServerEngine = CGSServerEngine::NewL();
+    currentValue = iServerEngine->AspectRatioL();
+    comboHandler->setCurrentIndex(currentValue);
+    
+    //If the index changed in the combobox update the AspectRatio of the TV-Out Settings. 
+    QObject::connect(comboHandler , SIGNAL(currentIndexChanged(int)) , this , SLOT(currentIndexModified(int)));
+    
+    window->addView(loader.findWidget("view"));
+
+    }
+    
+TvOutView::~TvOutView()
+    {
+    if(iServerEngine)
+        {
+        delete iServerEngine;
+        }
+    }
+
+void TvOutView::currentIndexModified(int modifiedSlot)
+    {
+    iServerEngine->SetAspectRatioL( modifiedSlot );
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/inc/accindicator.h	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Accessory Indicator class
+ *
+ */
+
+#ifndef ACCINDICATOR_H
+#define ACCINDICATOR_H
+
+#include <QObject>
+
+#include <QVariant>
+#include <QtCore/QProcess>
+
+#include <hbindicatorinterface.h>
+#include <hbindicatorplugininterface.h>
+
+#include <accpolaccessorymode.h>
+
+/**
+ * Accessory indicator class. 
+ * Handles client request and shows the indications. 
+ */
+class AccIndicatorPlugin : public HbIndicatorInterface, public HbIndicatorPluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(HbIndicatorPluginInterface)
+public:
+
+    AccIndicatorPlugin();
+    ~AccIndicatorPlugin();
+public:
+    //from HbindicatorInterface    
+    bool handleInteraction(InteractionType type);
+    QVariant indicatorData(int role) const;
+    
+public:
+    //from HbIndicatorPluginInterface
+    QStringList indicatorTypes() const;
+    bool accessAllowed(const QString &indicatorType,
+                               const HbSecurityInfo *securityInfo) const;   
+    HbIndicatorInterface* createIndicator(const QString &indicatorType);
+    int error() const;
+
+protected:
+    //from HbindicatorInterface
+    bool handleClientRequest(RequestType type, const QVariant &parameter);
+    
+private: 
+    void prepareDisplayName();
+   
+private:
+
+    QString mDisplayName;
+    QProcess mProcess;
+    TAccMode mAccMode;
+    int mAccType;
+    QStringList mIndicatorTypes;
+    QStringList mArgs;
+    
+private slots:
+    void processError(QProcess::ProcessError err); // handler for error codes
+
+private:
+    Q_DISABLE_COPY(AccIndicatorPlugin)
+    int mError;
+    };
+
+#endif // ACCINDICATOR_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/rom/accindicatorplugin.iby	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __ACCINDICATORPLUGIN_IBY__
+#define __ACCINDICATORPLUGIN_IBY__
+
+REM DLL
+file=ABI_DIR\UREL\accindicatorplugin.dll               SHARED_LIB_DIR\accindicatorplugin.dll UNPAGED
+data=\epoc32\data\z\resource\plugins\indicators\accindicatorplugin.qtplugin   \resource\plugins\indicators\accindicatorplugin.qtplugin
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/src/accindicator.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,251 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+#include "accindicator.h"
+
+#include <QtPlugin>
+#include <QProcess>
+#include <accpolgenericiddefinitions.h>
+
+Q_EXPORT_PLUGIN(AccIndicatorPlugin)
+const static char IndicatorType[] = "com.nokia.accessory.indicatorplugin/1.0";
+QString KAccMode = "AccMode";
+QString KAccType = "AccType";
+
+AccIndicatorPlugin::AccIndicatorPlugin() :
+HbIndicatorInterface(IndicatorType,
+        HbIndicatorInterface::GroupPriorityLow,
+        InteractionActivated)
+    {
+    mIndicatorTypes << "com.nokia.accessory.indicatorplugin/1.0";
+    }
+
+AccIndicatorPlugin::~AccIndicatorPlugin()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicatorPlugin::indicatorTypes
+// returns the indicator types handled by this plugin
+// ----------------------------------------------------------------------------
+
+QStringList AccIndicatorPlugin::indicatorTypes() const
+    {
+    return mIndicatorTypes;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicatorPlugin::createIndicator
+// creates an indicator.
+// ----------------------------------------------------------------------------
+
+HbIndicatorInterface* AccIndicatorPlugin::createIndicator(
+        const QString &indicatorType)
+    {
+    Q_UNUSED(indicatorType)
+    return this;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicatorPlugin::error
+// returns the error code.
+// ----------------------------------------------------------------------------
+
+int AccIndicatorPlugin::error() const
+    {
+    return mError;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicatorPlugin::accessAllowed
+// check for the access rights of the client. As there are no restrictions for 
+// this plugin it always returns true.
+// ----------------------------------------------------------------------------
+
+bool AccIndicatorPlugin::accessAllowed(const QString &indicatorType,
+    const HbSecurityInfo *securityInfo) const
+    {
+    Q_UNUSED(indicatorType)
+    Q_UNUSED(securityInfo)
+
+    return true;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicator::handleInteraction
+// called when the user interacts with the indicator.Enable the interaction only
+// for headset,tty and tv-out for user to change the settings.
+// ----------------------------------------------------------------------------
+bool AccIndicatorPlugin::handleInteraction(InteractionType type)
+    {
+    bool handled = false;
+    if (type == InteractionActivated) 
+        {
+        // If it is 3-pole ( i.e., HeadSet or TTY ) and TV-Out enable the handleInteraction() to change the settings.
+        if(mAccMode == EAccModeWiredHeadset || mAccMode == EAccModeWirelessHeadset || mAccMode == EAccModeTextDevice || mAccMode == EAccModeTVOut )
+            {
+            QObject::connect( &mProcess, SIGNAL(error(QProcess::ProcessError)),                       
+                              this, SLOT(processError(QProcess::ProcessError)));
+
+            QVariant mode,type;
+            mode.setValue((int)mAccMode); 
+            type.setValue((int)mAccType);
+            mArgs.append(mode.toString());
+            mArgs.append(type.toString());
+            
+            // Launch the process to show the view.
+            mProcess.start("accindicatorsettings" , mArgs);
+            handled = true;
+            }
+        }
+    return handled;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicator::indicatorData
+// returns the name and icon to be displayed in the universal indicator menu.
+// ----------------------------------------------------------------------------
+QVariant AccIndicatorPlugin::indicatorData(int role) const
+    {
+    switch(role)
+        {
+        //for displaying the string in indicator.
+        case PrimaryTextRole: 
+            {
+            QString type(mDisplayName);
+            return type;
+            }
+        //for displaying the icon in indicator.
+        case DecorationNameRole:
+            {
+            QString iconName;
+            if(mAccType == KPCWired || mAccType == KPCUSB)
+                {
+                iconName = QString("z:/resource/accindicator/wired_accessory.svg");
+                }
+            else if (mAccType == KPCBluetooth || mAccType == KPCInfraRed)
+                {
+                iconName = QString("z:/resource/accindicator/wireless_accessory.svg");
+                }
+            return iconName;
+            }
+        default: 
+            return QVariant();      
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicatorPlugin::handleClientRequest
+// this function gets called when client activates plugin
+// ----------------------------------------------------------------------------
+bool AccIndicatorPlugin::handleClientRequest( RequestType type, 
+        const QVariant &parameter)
+    {    
+    bool handled(false);
+    switch (type) {
+        case RequestActivate:
+            {
+            // Get the params(acctype and mode) from the hbindicator.activate() which is called from sysap.
+            
+            QVariantMap mapValues = parameter.toMap();
+            if(mapValues.contains(KAccMode))
+                {
+                mAccMode = static_cast<TAccMode>(mapValues.value(KAccMode).toInt());
+                }
+            if(mapValues.contains(KAccType))
+                {
+                mAccType = mapValues.value(KAccType).toInt();
+                }
+
+            // prepare the name to be displayed in the universal indicator menu.
+            prepareDisplayName();
+            emit dataChanged();
+            handled =  true;
+            }
+            break;
+        case RequestDeactivate:
+            {
+            // reset data 
+            mDisplayName = QString();
+            emit deactivate();
+            }
+            break;
+        default:
+            break;
+    }
+    return handled;
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicator::prepareDisplayName
+// prepare the name to be displayed in the indicator menu.
+// ----------------------------------------------------------------------------
+void AccIndicatorPlugin::prepareDisplayName()
+    {
+    mDisplayName.clear();
+    switch(mAccMode)
+        {
+        case EAccModeWiredHeadset:
+            mDisplayName.append(QString("Wired Headset"));
+            break;
+        case EAccModeWirelessHeadset:
+            mDisplayName.append(QString("Wireless Headset"));
+            break;
+        case EAccModeWiredCarKit:
+            mDisplayName.append(QString("Wired CarKit"));
+            break;
+        case EAccModeWirelessCarKit:
+            mDisplayName.append(QString("Wireless Carkit"));
+            break;
+        case EAccModeTextDevice:
+            mDisplayName.append(QString("TTY"));
+            break;
+        case EAccModeLoopset:
+            mDisplayName.append(QString("LoopSet"));
+            break;
+        case EAccModeMusicStand:
+            mDisplayName.append(QString("Music Stand"));
+            break;
+        case EAccModeTVOut:
+            mDisplayName.append(QString("TV Out"));
+            break;
+        case EAccModeHeadphones:
+            mDisplayName.append(QString("Head Phones"));
+            break;
+        default :
+            mDisplayName.append(QString("Unknown"));
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// AccIndicator::processError
+// handle the error conditions reurned by the QProcess.
+// ----------------------------------------------------------------------------
+
+void AccIndicatorPlugin::processError(QProcess::ProcessError err)
+    {
+    switch (err) {   
+        case QProcess::FailedToStart: 
+        case QProcess::Crashed: 
+        case QProcess::Timedout: 
+        case QProcess::ReadError: 
+        case QProcess::WriteError: 
+        case QProcess::UnknownError:
+             break;  
+        default:
+            break;
+        }
+    }
--- a/systemsettings/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/cenrep/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/conf/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/data/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/group/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/group/bld.inf	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/gssensorplugin/group/bld.inf	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -25,14 +25,14 @@
 ../conf/sensorplugin.confml         MW_LAYER_CONFML(sensorplugin.confml)
 ../conf/sensorplugin_10282DF0.crml  MW_LAYER_CRML(sensorplugin_10282DF0.crml)
 
-../loc/gssensorplugin.loc           MW_LAYER_LOC_EXPORT_PATH(gssensorplugin.loc)
+// ../loc/gssensorplugin.loc           MW_LAYER_LOC_EXPORT_PATH(gssensorplugin.loc)
 
 // Iby file exports
-../rom/gssensorplugin.iby           CORE_MW_LAYER_IBY_EXPORT_PATH(gssensorplugin.iby)
-../rom/gssenpluginresources.iby     LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(gssenpluginresources.iby)
+// ../rom/gssensorplugin.iby           CORE_MW_LAYER_IBY_EXPORT_PATH(gssensorplugin.iby)
+// ../rom/gssenpluginresources.iby     LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(gssenpluginresources.iby)
 
 PRJ_MMPFILES
-gssensorplugin.mmp
+// gssensorplugin.mmp
 
 PRJ_EXTENSIONS
 
--- a/systemsettings/gssensorplugin/group/gssensorplugin.cfg	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/gssensorplugin/group/gssensorplugin.cfg	Thu Jun 24 13:52:58 2010 +0100
@@ -15,7 +15,6 @@
 *
 */
 
-
 #ifndef GSSENSORPLUGIN_CFG
 #define GSSENSORPLUGIN_CFG
 
--- a/systemsettings/gssensorplugin/group/gssensorplugin.mmp	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/gssensorplugin/group/gssensorplugin.mmp	Thu Jun 24 13:52:58 2010 +0100
@@ -74,11 +74,13 @@
 LIBRARY   egul.lib              // For GulIcon in checkbox icons
 LIBRARY   eikctl.lib            // For checkbox icons
 
-LIBRARY   CommonEngine.lib      // For RConeResourceLoader
-LIBRARY   FeatMgr.lib           // Feature manager 
-LIBRARY   CentralRepository.lib // for CenRep
+LIBRARY   commonengine.lib      // For RConeResourceLoader
+LIBRARY   featmgr.lib           // Feature manager 
+LIBRARY   centralrepository.lib // for CenRep
 LIBRARY   aknskins.lib          // for enhanced skinning
 LIBRARY   hlplch.lib            // for "Help" options menu
-LIBRARY   GSFramework.lib       // For base classes
-LIBRARY   GSListBox.lib         // For CGSListBoxItemTextArray
-LIBRARY   GSEcomPlugin.lib      // For base classes
+LIBRARY   gsframework.lib       // For base classes
+LIBRARY   gslistbox.lib         // For CGSListBoxItemTextArray
+LIBRARY   gsecomplugin.lib      // For base classes
+
+SMPSAFE
--- a/systemsettings/gssensorplugin/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/loc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/rom/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/src/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/systemsettings/gssensorplugin/src/gssenbasecontainer.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/gssensorplugin/src/gssenbasecontainer.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -189,7 +189,11 @@
     // cleanup checkboxOnIcon, checkboxOffIcon, iconArray
     CleanupStack::Pop( checkboxOffIcon );
     CleanupStack::Pop( checkboxOnIcon );
-    CleanupStack::Pop( iconArray );
+	
+	if(iconArray)
+		{
+		CleanupStack::Pop( iconArray );
+		}
 
     TRACE_( "[GSSensorPlugin] CGSSenBaseContainer::AddCheckboxIconsL() - return" );
     }
--- a/systemsettings/gssensorplugin/src/gssensorplugin.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/systemsettings/gssensorplugin/src/gssensorplugin.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -235,8 +235,8 @@
         case EGSSenMenuExit:
             {
             CheckExitStatusL();
-            // Proceed with the command
-            aCommand = EAknCmdExit;
+			aCommand = EAknCmdExit; //"break" is removed to continue the flow to default case with the exit command
+			// coverity[MISSING_BREAK] 
             }
         default:
             iAppUi->HandleCommandL( aCommand );
--- a/systemsettings/inc/Distribution.Policy.S60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/Release/Data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/Release/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file tzpcside/tzcompiler/documentation/SGL.GT0197.232 App-Services Tz  9.1 How-To Create the Tz Database.doc has changed
--- a/tzpcside/tzcompiler/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file tzpcside/tzcompiler/test/integration/TzCompilerTests/documentation/TestTzCompiler Description Document.doc has changed
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test1/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test10/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test11/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test12/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test13/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test2/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test3/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test4/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test5/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test6/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test7/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test8/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test9/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzdatabase/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzdatabase/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file tzservices/tzloc/documentation/SGL.GT0284.216 - Time Zone Services CR1606 How-To.doc has changed
--- a/tzservices/tzloc/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/group/backup_registration.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzloc/group/backup_registration.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,10 @@
 <?xml version="1.0" standalone="yes"?>
 
 <!--
- Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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".
 
@@ -21,4 +21,4 @@
 
 <backup_registration>
    <dbms_backup policy="10206A8B"/>
-</backup_registration>
\ No newline at end of file
+</backup_registration>
--- a/tzservices/tzloc/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/res/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -99,7 +99,28 @@
 	User::LeaveIfError(iDbsSession.Connect());
 	//Attempt to open the database
 	TInt error = iLocalizedTimeZoneDb.Open(iDbsSession,KTzLocalizationDbName,KTzLocalizationDbSecurityPolicy);
+	if (error == KErrNotFound)
+		{
+		//Database file doesn't exist.  Attempt to create a new one.
+		error = iLocalizedTimeZoneDb.Create(iDbsSession,KTzLocalizationDbName,KTzLocalizationDbSecurityPolicy);
+		if (error == KErrNone)
+			{
+			User::LeaveIfError(CreateFrequentlyUsedZoneTableL());
+			User::LeaveIfError(CreateUserCityTableL());
+			}
+		}
 	User::LeaveIfError(error);
+	// Check if both tables are created.
+	TRAP(error, iLocalizedTimeZoneDb.ColSetL(KCZTableName));
+	if (error)
+		{
+		User::LeaveIfError(CreateFrequentlyUsedZoneTableL());
+		}
+	TRAP(error, iLocalizedTimeZoneDb.ColSetL(KUCTableName));
+	if (error)
+	        {
+		User::LeaveIfError(CreateUserCityTableL());
+		}
 	}
 
 /**
--- a/tzservices/tzloc/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/TzLocalTestServer/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/TzLocalTestServer/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/TzLocalTestServer/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/TzLocalTestServer/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/tztestscripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/integration/tztestscripts/tzlocnoresource_post.bat	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzloc/test/integration/tztestscripts/tzlocnoresource_post.bat	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,18 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
 REM Move the required localization files from temporary directory to original directory
 
 move \epoc32\release\winscw\udeb\z\resource\temp\timezones.r01 \epoc32\release\winscw\udeb\z\resource\timezonelocalization\timezones.r01 
--- a/tzservices/tzloc/test/integration/tztestscripts/tzlocnoresource_pre.bat	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzloc/test/integration/tztestscripts/tzlocnoresource_pre.bat	Thu Jun 24 13:52:58 2010 +0100
@@ -1,3 +1,18 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
 REM Create a temporary directory to store the original localization resource files
 
 mkdir \epoc32\release\winscw\udeb\z\resource\temp
--- a/tzservices/tzloc/test/rtest/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/rtest/timezonelocalization/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/rtest/timezonelocalization/locale/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/rtest/timezonelocalization/modified/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/tzltestres/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/Scripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/TzLocalizationTestServer/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/TzLocalizationTestServer/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/TzLocalizationTestServer/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/TzLocalizationTestServer/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzloc/test/unit/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzlocrscfactory/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzlocrscfactory/res/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/Client/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/Client/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/Client/Source/timezoneuserdata.cpp	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzserver/Client/Source/timezoneuserdata.cpp	Thu Jun 24 13:52:58 2010 +0100
@@ -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"
@@ -523,7 +523,6 @@
 	iTzServer.DeleteUserTimeZoneL(aTzId);
 	}
 
-
 /**
 Returns the time zone identifiers for all existing user-defined time zones.
 
@@ -533,5 +532,19 @@
 */	
 EXPORT_C void CTzUserData::GetTzIdsL(RPointerArray<CTzId>& aTzIds) const
 	{
+	CleanupStack::PushL( TCleanupItem(CleanupPointerArray, &aTzIds) );
 	iTzServer.GetUserTimeZoneIdsL(aTzIds);
+	CleanupStack::Pop();
 	}
+
+void CTzUserData::CleanupPointerArray(TAny* aArray)
+    {
+    RPointerArray<CTzId>* array = static_cast<RPointerArray<CTzId>* >(aArray);
+    if (array)
+        {
+        array->ResetAndDestroy();
+        array->Close();
+        }
+    }
+ 
+
--- a/tzservices/tzserver/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/Include/tzuserdefineddata.h	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzserver/Include/tzuserdefineddata.h	Thu Jun 24 13:52:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -53,7 +53,8 @@
 
 private:
     CTzUserData(RTz& aTzServer);
-	
+    static void CleanupPointerArray(TAny* aArray);
+    	
 private:
     RTz& iTzServer;
 	};
--- a/tzservices/tzserver/Server/Include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/Server/Source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/analysis/DAYLIGHT SAVINGS ANALYSIS.mdl	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6210 +0,0 @@
-
-(object Petal
-    version    	43
-    _written   	"Rose 6.5.9232.10"
-    charSet    	0)
-
-(object Design "Logical View"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"36D487460258"
-    defaults   	(object defaults
-	rightMargin 	0.250000
-	leftMargin 	0.250000
-	topMargin  	0.250000
-	bottomMargin 	0.500000
-	pageOverlap 	0.250000
-	clipIconLabels 	TRUE
-	autoResize 	TRUE
-	snapToGrid 	FALSE
-	gridX      	16
-	gridY      	16
-	defaultFont 	(object Font
-	    size       	9
-	    face       	"Arial"
-	    bold       	FALSE
-	    italics    	FALSE
-	    underline  	FALSE
-	    strike     	FALSE
-	    color      	0
-	    default_color 	TRUE)
-	showMessageNum 	1
-	showClassOfObject 	TRUE
-	notation   	"Unified")
-    root_usecase_package 	(object Class_Category "Use Case View"
-	quid       	"34DBB4830142"
-	documentation 	
-|The Use Case View organizes the Use-Case Model and the optional Business Use-Case Model.
-|
-	
-	exportControl 	"Public"
-	global     	TRUE
-	logical_models 	(list unit_reference_list
-	    (object Class_Category "Business Use-Case Model"
-		quid       	"35B677D701B8"
-		documentation 	
-|Optional Model:
-|The business modeling workflow in Rational Unified Process produces two models: the business use-case model, and the business object model. Both show the business 
-|processes, but different aspects of them. In the business use-case model each business use case represents a business process, described (text and/or activity diagrams) from an "external" view point without worrying about who does what to whom inside of the organization. 
-|In the business object model, you include realizations of each business use case to show how workers and entities collaborate to perform the process. You do that using class diagrams, activity diagrams with swimlanes, collaboration diagrams, and/or interaction diagrams.
-|
-|<Any additional description of the Business Use Case Model, such as modeling conventions that the reader/reviewer may need to understand the model, should be described here.>
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list)
-		logical_presentations 	(list unit_reference_list
-		    (object UseCaseDiagram "Global View of Business Actors and Business Use Cases"
-			quid       	"35C0DFF50172"
-			title      	"Global View of Business Actors and Business Use Cases"
-			documentation 	"This is a global view of the system showing all Busines Use Cases and Business Actors.  It is intended to be an overview diagram, so if the diagram becomes too complex for easy comprehension, use several diagrams, each of which should focus on a different aspect of the system.  Usually, organizing use case diagrams around actors is a good approach."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @1
-				location   	(464, 352)
-				label      	(object ItemLabel
-				    Parent_View 	@1
-				    location   	(42, 11)
-				    fill_color 	13434879
-				    nlines     	14
-				    max_width  	809
-				    label      	
-|Global View of Business Actors and BusinessUse Cases
-|
-|This diagram presents all Business Actors and all concrete Business Use Cases (those that are directly instantiable).
-|
-|Related Rational Unified Process Activities:
-|- Activity: Find Business Actors and Use Cases
-|- Activity: Structure the Business Use Case Model
-|
-|*Note: this note may be deleted once the diagram is created.
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	869
-				height     	694)
-			    (object NoteView @2
-				location   	(1280, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@2
-				    location   	(942, 29)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275)))))
-	    (object Class_Category "Use-Case Model"
-		is_unit    	TRUE
-		is_loaded  	FALSE
-		file_name  	"M:\\DST\\analysis\\UseCases.cat"
-		quid       	"35B677F4010E"))
-	logical_presentations 	(list unit_reference_list
-	    (object UseCaseDiagram "Main"
-		quid       	"35C6339B029F"
-		title      	"Main"
-		documentation 	
-|This diagram depicts the relationships between the packages (models) contained in the 'Use-Case View": the Use-Case Model (for the system) and the Business Use-Case Model (describing the business).
-		
-		zoom       	90
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object CategoryView "Use Case View::Use-Case Model" @3
-			location   	(400, 864)
-			font       	(object Font
-			    size       	10)
-			label      	(object ItemLabel
-			    Parent_View 	@3
-			    location   	(256, 780)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	288
-			    justify    	0
-			    label      	"Use-Case Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B677F4010E"
-			width      	300
-			height     	180)
-		    (object NoteView @4
-			location   	(1168, 592)
-			font       	(object Font
-			    size       	10)
-			label      	(object ItemLabel
-			    Parent_View 	@4
-			    location   	(941, 390)
-			    fill_color 	13434879
-			    nlines     	9
-			    max_width  	419
-			    label      	"The Use-Case Model is traceable to (and derives from) the Business Model.  The system (as described in the Use Case Model) provides behavior that supports the business.")
-			line_color 	3342489
-			fill_color 	13434879
-			width      	479
-			height     	416)
-		    (object CategoryView "Use Case View::Business Use-Case Model" @5
-			location   	(384, 320)
-			label      	(object ItemLabel
-			    Parent_View 	@5
-			    location   	(189, 229)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	390
-			    justify    	0
-			    label      	"Business Use-Case Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B677D701B8"
-			width      	403
-			height     	194)
-		    (object ImportView "" @6
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"35C633DA030C"
-			client     	@3
-			supplier   	@5
-			line_style 	0)
-		    (object AttachView "" @7
-			stereotype 	TRUE
-			line_color 	3342489
-			client     	@6
-			supplier   	@4
-			line_style 	0)))))
-    root_category 	(object Class_Category "Logical View"
-	quid       	"34DBB4830141"
-	documentation 	
-|Rational Unified Process uses the "Logical View in Rose" to organize the Design Model  and the Process View and the optional Business Object Model and Analysis Model.
-	
-	exportControl 	"Public"
-	global     	TRUE
-	subsystem  	"Component View"
-	quidu      	"34DBB4830143"
-	logical_models 	(list unit_reference_list
-	    (object Class_Category "Analysis Model"
-		quid       	"35B678170028"
-		documentation 	
-|This model is optional.
-|The Analysis Model contains a set of Analysis Classes, which describe an abstract realization of the use cases of the system.  The analysis classes evolve into associated design elements which are modeled in the Design Model.  
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list
-		    (object Class_Category "Business Object Model"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalBusinessObjects.cat"
-			quid       	"35B678080064")
-		    (object Class_Category "TZ Compiler"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\TZCOMPILER.CAT"
-			quid       	"40E569BC024F")
-		    (object Class_Category "LTClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\Classes.cat"
-			quid       	"40A89DC203B0")
-		    (object Class_Category "Time Zone Database Management"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalTZDBM.cat"
-			quid       	"40B1E4A6003A")
-		    (object Class_Category "Local Time Conversion"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalLocaltimeConv.cat"
-			quid       	"40B1D43200B7")
-		    (object Class_Category "System Time Management"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalSysTimeMngmt.cat"
-			quid       	"40B1D49203C5")
-		    (object Class_Category "TZClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\TZClasses.cat"
-			quid       	"40F3CEAF0324")
-		    (object Class_Category "BClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\BClasses.cat"
-			quid       	"40F3CFB10172"))
-		logical_presentations 	(list unit_reference_list))
-	    (object Class_Category "Design Model"
-		quid       	"35B6782302DA"
-		documentation 	
-|The Design Model in Rational Unified Process.
-|The design model is adapted to model the real implementation environment, and serves as an abstraction of the source code. It is a "blueprint" of how the source code is structured and written. 
-|
-|The design model is a hierarchy of packages (design subsystems and design-service  packages), with "leaves" that are classes. Subsystems are a design "view" of the components that are defined in the Implementation Model.
-|
-|The design model hierarchy consists of layers. 
-|
-|Classes represent abstractions of classes in the system's implementation. They define the objects, which in turn are abstractions of the objects in the system's implementation. The use cases are realized by the objects, and this is represented by use-case realizations in the Design Model.  Each use-case realization has a realize dependency to a use case in the Use-Case Model. 
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list
-		    (object Class_Category "<Layer Name> Layer"
-			quid       	"34E3686A00F0"
-			documentation 	
-|The design model is normally organized in layers. The number of layers is not fixed, but varies from situation to situation. 
-|
-|During architectural analysis, focus is normally on the two high-level layers, that is, the application and business-specific layers;  this is what is meant by the "high-level organization of subsystems." The other lower-level layers are in focus during architectural design, refer to the activity Architectural Design for more information.
-|
-|Layers are identified using the naming conventions shown in the name of this package. 
-			
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Class_Category "<package name>"
-				quid       	"34E36BB7017C"
-				documentation 	
-|<Enter a short description of the package here.  A package should be used in cases where a set of classes and/or other packages need to be grouped together for model organization purposes.  Though the contents of the package can have public visibility, which makes them visible to model elements outside the containing package, packages are primarily just grouping mechanisms.  
-|
-|If a set of classes is to be encapsulated and can be hidden behind a well-defined interface, a subsystem is a more appropriate container>
-				
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list)
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "<package name> - Dependencies"
-					quid       	"37BC2256004D"
-					title      	"<package name> - Dependencies"
-					documentation 	"This diagram shows the package itself and the packages that it is dependent of. That is useful to know for instance when the package is a separate unit that can be reused in other systems."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))
-				    (object ClassDiagram "<package name> - Interfaces"
-					quid       	"37BC226D026D"
-					title      	"<package name> - Interfaces"
-					documentation 	"This diagram shows only the classes that are visible outside this package. The interfaces of the package."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))))
-			    (object Class_Category "<Subsystem Name>"
-				quid       	"35C0F38200B4"
-				documentation 	
-|<Enter a short description of the subsystem here.  A subsystem should be used in cases where a set of classes and/or other packages need to be encapsulated within a container and hidden behind a set of well-defined interfaces.  By convention, none of the contents of subsystem are visible except the interfaces of the subsystem.  This allows subsystems to be easily replaced, and the implementations changed, provided the interfaces remain unchanged.  It offers a degree of encapsulation greater than that of the package.
-|
-|If a set of classes is merely to be grouped together, but public visibility of classes is still desirable, a package is a more appropriate container.>
-				
-				stereotype 	"subsystem"
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list)
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "<subsystem name> - Dependencies"
-					quid       	"35C0F4220190"
-					title      	"<subsystem name> - Dependencies"
-					documentation 	"This diagram shows the package itself and the packages that it is dependent of. That is useful to know for instance when the package is a separate unit that can be reused in other systems."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))
-				    (object ClassDiagram "<subsystem name> - Interfaces"
-					quid       	"37BC21080165"
-					title      	"<subsystem name> - Interfaces"
-					documentation 	
-|The Process View in Rational Unified Process
-|This package is used to organize the active classes in the system and will be presented in the SoDA-generated Software Architecture Document, under the "Process View"
-					
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list)))))
-			logical_presentations 	(list unit_reference_list
-			    (object ClassDiagram "All Packages in <Layer Name> - Layer"
-				quid       	"34E36C2903C0"
-				title      	"All Packages in <Layer Name> - Layer"
-				documentation 	"This diagram shows all packages in this - Layer."
-				zoom       	100
-				max_height 	28350
-				max_width  	21600
-				origin_x   	0
-				origin_y   	0
-				items      	(list diagram_item_list))))
-		    (object Class_Category "Use-Case Realizations"
-			quid       	"34E36D3203CA"
-			documentation 	
-|In this Package we will describe "Use Case Realizations" as stereotyped use cases.
-|
-|A use-case realization describes how a particular use case is realized within  the design model, in terms of collaborating objects.
-|
-|A realize dependency is used between the "Use Case Realization" and the "Use Case" in the use-case  model that is realized. 
-|
-|
-			
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Association "$UNNAMED$0"
-				quid       	"35409E9D02A8"
-				stereotype 	"realize"
-				roles      	(list role_list
-				    (object Role "$UNNAMED$1"
-					quid       	"35409E9E0294"
-					supplier   	"Use Case View::Use-Case Model::Use Cases::<Use Case Name>::<Use Case Name>"
-					quidu      	"34E37FB203D4"
-					is_navigable 	TRUE)
-				    (object Role "$UNNAMED$2"
-					quid       	"35409E9E0295"
-					supplier   	"Logical View::Design Model::Use-Case Realizations::<Use-Case Name>::<Use-Case Name>"
-					quidu      	"352F38180276")))
-			    (object Class_Category "<Use-Case Name>"
-				quid       	"35D083E100BE"
-				documentation 	" A separate package is recommended for each Use Case Realization to facilitate access and version control of related use case artifacts."
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list
-				    (object UseCase "<Use-Case Name>"
-					attributes 	(list Attribute_Set
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProProjectPath"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProProjectGuid"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocumentName"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocumentGuid"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocType"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProReqType"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProRequirementId"
-						value      	""))
-					quid       	"352F38180276"
-					documentation 	
-|This will be a stereotype on a usecase. 
-|In UML it is a stereotype on a collaboration and that does not exist in Rose.
-					
-					stereotype 	"use-case realization"
-					logical_models 	(list unit_reference_list
-					    (object Mechanism @8
-						logical_models 	(list unit_reference_list))
-					    (object Mechanism @9
-						logical_models 	(list unit_reference_list)))
-					logical_presentations 	(list unit_reference_list
-					    (object ClassDiagram "<Use Case Name> -  Realize Dependencies"
-						quid       	"37BC23B801F1"
-						title      	"<Use Case Name> -  Realize Dependencies"
-						documentation 	"This diagram shows the Use Case and the Use Case Realization and the realize dependency between them.  This information is used to connect the use case with the use case realization."
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object ClassDiagram "<Use Case Name> -  Participating Classes"
-						quid       	"37BC23E0036B"
-						title      	"<Use Case Name> -  Participating Classes"
-						documentation 	"This Diagram shows all participating classes in this Use Case Realization"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object InteractionDiagram "<Use Case Name> -  Basic Flow"
-						mechanism_ref 	@8
-						quid       	"35081E3603A2"
-						title      	"<Use Case Name> -  Basic Flow"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object InteractionDiagram "<Use Case Name> -  <Flow Type>"
-						mechanism_ref 	@9
-						quid       	"3540A0B901AE"
-						title      	"<Use Case Name> -  <Flow Type>"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list)))))
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "Realize Dependency"
-					quid       	"34E39DA90302"
-					title      	"Realize Dependency"
-					documentation 	"This diagram shows the Use Case and the Use Case Realization and the realizes dependency between them."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list
-					    (object NoteView @10
-						location   	(704, 144)
-						label      	(object ItemLabel
-						    Parent_View 	@10
-						    location   	(38, 25)
-						    fill_color 	13434879
-						    nlines     	5
-						    max_width  	1296
-						    label      	
-|
-|This diagram shows the Use Case and the Use Case Realization and the realize dependency between them.
-						    )
-						line_color 	3342489
-						fill_color 	13434879
-						width      	1356
-						height     	250)
-					    (object UseCaseView "Use Case View::Use-Case Model::Use Cases::<Use Case Name>::<Use Case Name>" @11
-						location   	(1152, 528)
-						label      	(object ItemLabel
-						    Parent_View 	@11
-						    location   	(1152, 666)
-						    anchor_loc 	1
-						    nlines     	2
-						    max_width  	631
-						    justify    	0
-						    label      	"<Use Case Name>")
-						icon_style 	"Icon"
-						line_color 	3342489
-						fill_color 	13434879
-						quidu      	"34E37FB203D4"
-						autoResize 	TRUE)
-					    (object UseCaseView "Logical View::Design Model::Use-Case Realizations::<Use-Case Name>::<Use-Case Name>" @12
-						location   	(608, 960)
-						label      	(object ItemLabel
-						    Parent_View 	@12
-						    location   	(608, 1148)
-						    anchor_loc 	1
-						    nlines     	2
-						    max_width  	651
-						    justify    	0
-						    label      	"<Use-Case Name>")
-						stereotype 	(object ItemLabel
-						    Parent_View 	@12
-						    location   	(608, 1078)
-						    anchor     	10
-						    anchor_loc 	1
-						    nlines     	1
-						    max_width  	434
-						    justify    	0
-						    label      	"<<use-case realization>>")
-						icon       	"use-case realization"
-						icon_style 	"Icon"
-						line_color 	3342489
-						fill_color 	13434879
-						quidu      	"352F38180276"
-						autoResize 	TRUE)
-					    (object AssociationViewNew "$UNNAMED$0" @13
-						location   	(876, 741)
-						stereotype 	(object SegLabel @14
-						    Parent_View 	@13
-						    location   	(874, 746)
-						    anchor     	10
-						    anchor_loc 	1
-						    nlines     	1
-						    max_width  	450
-						    justify    	0
-						    label      	"<<realize>>"
-						    pctDist    	0.483333
-						    height     	5
-						    orientation 	1)
-						line_color 	3342489
-						quidu      	"35409E9D02A8"
-						roleview_list 	(list RoleViews
-						    (object RoleView "$UNNAMED$1" @15
-							Parent_View 	@13
-							location   	(236, -539)
-							stereotype 	TRUE
-							line_color 	3342489
-							quidu      	"35409E9E0294"
-							client     	@13
-							supplier   	@11
-							line_style 	0)
-						    (object RoleView "$UNNAMED$2" @16
-							Parent_View 	@13
-							location   	(236, -539)
-							stereotype 	TRUE
-							line_color 	3342489
-							quidu      	"35409E9E0295"
-							client     	@13
-							supplier   	@12
-							line_style 	0))))))))
-			logical_presentations 	(list unit_reference_list))
-		    (object Class_Category "Process View"
-			quid       	"35D227B103C0"
-			documentation 	"An architectural view that describes the concurrent aspect of the system: tasks (processes) and their interactions."
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Class "<Process Name>"
-				quid       	"35DB3C8302D0"
-				documentation 	"This process provides <enter a description here of what the role of the process in the system is>.  A separate process was chosen for this to be able to <enter the rationale for needing a separate process>."
-				stereotype 	"process")
-			    (object Class "<Thread Name>"
-				quid       	"35DB3CB002BC"
-				documentation 	"This is a sub-process or thread within the <name of process of which this thread is a sub-process> process which handles <enter a description of what this thread does>.  A separate thread was chosen for this to be able to <enter the rationale for creating a separate thread>."
-				stereotype 	"thread")
-			    (object Association "$UNNAMED$3"
-				quid       	"35DB3E72017C"
-				roles      	(list role_list
-				    (object Role "$UNNAMED$4"
-					quid       	"35DB3E73005A"
-					supplier   	"Logical View::Design Model::Process View::<Process Name>"
-					quidu      	"35DB3C8302D0"
-					is_navigable 	TRUE
-					is_aggregate 	TRUE)
-				    (object Role "$UNNAMED$5"
-					quid       	"35DB3E730096"
-					supplier   	"Logical View::Design Model::Process View::<Thread Name>"
-					quidu      	"35DB3CB002BC"
-					Containment 	"By Value"
-					is_navigable 	TRUE))))
-			logical_presentations 	(list unit_reference_list
-			    (object ClassDiagram "Process View"
-				quid       	"35DB3C2A02B2"
-				title      	"Process View"
-				documentation 	"This diagram illustrates the composition of processes and threads, and the mapping of classes onto those processes and threads."
-				zoom       	100
-				max_height 	28350
-				max_width  	21600
-				origin_x   	0
-				origin_y   	0
-				items      	(list diagram_item_list
-				    (object ClassView "Class" "Logical View::Design Model::Process View::<Process Name>" @17
-					ShowCompartmentStereotypes 	TRUE
-					IncludeAttribute 	TRUE
-					IncludeOperation 	TRUE
-					location   	(288, 464)
-					label      	(object ItemLabel
-					    Parent_View 	@17
-					    location   	(122, 436)
-					    fill_color 	13434879
-					    nlines     	1
-					    max_width  	332
-					    justify    	0
-					    label      	"<Process Name>")
-					stereotype 	(object ItemLabel
-					    Parent_View 	@17
-					    location   	(122, 389)
-					    fill_color 	13434879
-					    anchor     	10
-					    nlines     	1
-					    max_width  	332
-					    justify    	0
-					    label      	"<<process>>")
-					icon_style 	"Icon"
-					line_color 	3342489
-					fill_color 	13434879
-					quidu      	"35DB3C8302D0"
-					width      	350
-					height     	172
-					annotation 	8
-					autoResize 	TRUE)
-				    (object ClassView "Class" "Logical View::Design Model::Process View::<Thread Name>" @18
-					ShowCompartmentStereotypes 	TRUE
-					IncludeAttribute 	TRUE
-					IncludeOperation 	TRUE
-					location   	(896, 464)
-					label      	(object ItemLabel
-					    Parent_View 	@18
-					    location   	(740, 436)
-					    fill_color 	13434879
-					    nlines     	1
-					    max_width  	312
-					    justify    	0
-					    label      	"<Thread Name>")
-					stereotype 	(object ItemLabel
-					    Parent_View 	@18
-					    location   	(740, 389)
-					    fill_color 	13434879
-					    anchor     	10
-					    nlines     	1
-					    max_width  	312
-					    justify    	0
-					    label      	"<<thread>>")
-					icon_style 	"Icon"
-					line_color 	3342489
-					fill_color 	13434879
-					quidu      	"35DB3CB002BC"
-					width      	330
-					height     	172
-					annotation 	8
-					autoResize 	TRUE)
-				    (object AssociationViewNew "$UNNAMED$3" @19
-					location   	(596, 464)
-					stereotype 	TRUE
-					line_color 	3342489
-					quidu      	"35DB3E72017C"
-					roleview_list 	(list RoleViews
-					    (object RoleView "$UNNAMED$4" @20
-						Parent_View 	@19
-						location   	(-300, 0)
-						stereotype 	TRUE
-						line_color 	3342489
-						quidu      	"35DB3E73005A"
-						client     	@19
-						supplier   	@17
-						line_style 	0)
-					    (object RoleView "$UNNAMED$5" @21
-						Parent_View 	@19
-						location   	(-300, 0)
-						stereotype 	TRUE
-						line_color 	3342489
-						quidu      	"35DB3E730096"
-						client     	@19
-						supplier   	@18
-						line_style 	0))))))))
-		logical_presentations 	(list unit_reference_list
-		    (object ClassDiagram "Architecturally Significant Model Elements"
-			quid       	"34E36BDE02C6"
-			title      	"Architecturally Significant Model Elements"
-			documentation 	"Elements of the Design Model which are considered architecturally significant should be presented in this diagram.  This diagram will be presented in the document generated using the SoDA Software Architecture Document."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @22
-				location   	(672, 304)
-				label      	(object ItemLabel
-				    Parent_View 	@22
-				    location   	(28, 19)
-				    fill_color 	13434879
-				    nlines     	13
-				    max_width  	1253
-				    label      	
-|
-|This diagram is just produced for architectural significant packages.
-|
-|This diagram shows the Architectural Significant Classes and Packages in this package. Only significant  operations and attributes are shown on the classes in this diagram.
-|
-|See Rational Unified Process:
-|Activity: Architectural Design
-|Step:  Include Architecturally Significant Model Elements in the Logical View 
-|
-|This will be a part of  the  "Software Architecture Document" :
-|- "Logical View" 
-|-     "Architecturally Significant Model Elements"
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1313
-				height     	582)
-			    (object NoteView @23
-				location   	(1696, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@23
-				    location   	(1358, 29)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275)))
-		    (object ClassDiagram "Architecture Overview - Package and Subsystem Layering"
-			quid       	"354A9751015E"
-			title      	"Architecture Overview - Package and Subsystem Layering"
-			documentation 	
-|This diagram depicts the organization of the design model into layers. This diagram will be presented in the document generated using the SoDA Software Architecture Document.  
-|
-|See Rational Unified Process:
-|Activity: Architectural Analysis
-|Step: Define the High-Level Organization of Subsystems
-|
-|Activity: Incorporate Existing Design Elements
-|Step: Update the Organization of the Design Model
-			
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @24
-				location   	(576, 256)
-				label      	(object ItemLabel
-				    Parent_View 	@24
-				    location   	(44, 31)
-				    fill_color 	13434879
-				    nlines     	9
-				    max_width  	1028
-				    label      	
-|This diagram shows the design model layers.
-|
-|See Rational Unified Process:
-|Activity: Architectural Analysis
-|Step: Define the High-Level Organization of Subsystems
-|
-|Activity: Architectural Design
-|Step: Define the Low-level Organization of Subsystems
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1088
-				height     	463)
-			    (object NoteView @25
-				location   	(1520, 176)
-				label      	(object ItemLabel
-				    Parent_View 	@25
-				    location   	(1182, 45)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275))))))
-	logical_presentations 	(list unit_reference_list
-	    (object ClassDiagram "Welcome"
-		quid       	"3512226B0028"
-		title      	"Welcome"
-		documentation 	
-|Welcome to the Rational Unified Process Frame Work
-|
-|Purpose of the FrameWork:
-|a) provide a good structure for a Rose model
-|b) provide a style guide with naming conventions/suggestions
-|c) identify a minimal set of diagrams to produce
-|d) relate activities in RUP to Rose diagrams
-|e) provide a basis for sophisticated SoDA reports. For instance based on this structure most of the Rose parts of the "Software Architecture Document" are generated from SoDA.
-|
-		
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object NoteView @26
-			location   	(768, 384)
-			label      	(object ItemLabel
-			    Parent_View 	@26
-			    location   	(121, 96)
-			    fill_color 	13434879
-			    nlines     	14
-			    max_width  	1259
-			    label      	
-|Welcome to the Rational Unified Process Rose Model Framework
-|
-|Purpose of the Framework:
-|a) provide a good structure for a Rose model
-|b) provide a style guide with naming conventions/suggestions
-|c) identify a minimal set of diagrams to produce
-|d) relate activities in RUP to Rose diagrams
-|e) provide a basis for sophisticated SoDA reports. For instance based on this structure most of the Rose parts of the "Software Architecture Document" are generated from SoDA.
-			    )
-			line_color 	3342489
-			fill_color 	13434879
-			width      	1319
-			height     	588)
-		    (object CategoryView "Logical View::Analysis Model::TZ Compiler" @27
-			location   	(1136, 1008)
-			label      	(object ItemLabel
-			    Parent_View 	@27
-			    location   	(951, 924)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"TZ Compiler")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40E569BC024F"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::LTClasses" @28
-			location   	(432, 1008)
-			label      	(object ItemLabel
-			    Parent_View 	@28
-			    location   	(247, 924)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"LTClasses")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40A89DC203B0"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Time Zone Database Management" @29
-			location   	(1872, 1040)
-			label      	(object ItemLabel
-			    Parent_View 	@29
-			    location   	(1638, 956)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	468
-			    justify    	0
-			    label      	"Time Zone Database Management")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1E4A6003A"
-			width      	480
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Business Object Model" @30
-			location   	(512, 1408)
-			label      	(object ItemLabel
-			    Parent_View 	@30
-			    location   	(327, 1324)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"Business Object Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B678080064"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Local Time Conversion" @31
-			location   	(1728, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@31
-			    location   	(1543, 1308)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"Local Time Conversion")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1D43200B7"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::System Time Management" @32
-			location   	(1040, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@32
-			    location   	(855, 1308)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"System Time Management")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1D49203C5"
-			width      	382
-			height     	180)))))
-    root_subsystem 	(object SubSystem "Component View"
-	quid       	"34DBB4830143"
-	documentation 	
-|In Rational Unified Process the  "Component View in Rose" is used to organize the implemetation model. 
-|
-|The Implementaition View in Rational Unified Process
-|
-|
-	
-	physical_models 	(list unit_reference_list
-	    (object SubSystem "Implementation Model"
-		quid       	"35B67C9A0348"
-		documentation 	
-|The Implementation Model in Rational Unified Process is a collection of components, and the implementation subsystems that contain them.
-|
-|An architectural view that describes one or several system configurations; the mapping of software components (tasks, modules) to the computing nodes in these configurations.
-|
-|Defines, executables, dll's, files, subsystems, compilation order etc.
-|
-|Rational Unified Process:
-|Activity: Define the Organization of Subsystems
-|
-|These diagram will be presented in the  Implementation  View section in the document generated using the SoDA Software Architecture Document.
-|
-|It is recommended that, in most cases, the mapping should be
-|1:1 between design and implementation, that is, for each package in design there is one subsystem in the implementation model.
-|
-		
-		physical_models 	(list unit_reference_list)
-		physical_presentations 	(list unit_reference_list
-		    (object Module_Diagram "Implementation Model Structure"
-			quid       	"34DBB487006E"
-			title      	"Implementation Model Structure"
-			documentation 	"This diagram presents the organization of the Implementation Model."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @33
-				location   	(624, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@33
-				    location   	(21, 26)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	1170
-				    label      	
-|
-|RationalUnified Process:
-|Activity: Structure the implementation model
-|Step: Create the Initial Implementation Model Structure
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1230
-				height     	281)))))
-	    (object SubSystem "Components Analysis"
-		is_unit    	TRUE
-		is_loaded  	FALSE
-		file_name  	"M:\\DST\\analysis\\Components.sub"
-		quid       	"40D969B300E0"))
-	physical_presentations 	(list unit_reference_list
-	    (object Module_Diagram "Main"
-		quid       	"35C6339B029E"
-		title      	"Main"
-		documentation 	"This diagram, required by Rose, simply provides a way of navigating to the Implementation Model."
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object SubSysView "Component View::Implementation Model" @34
-			location   	(736, 800)
-			label      	(object ItemLabel
-			    Parent_View 	@34
-			    location   	(552, 713)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	368
-			    justify    	0
-			    label      	"Implementation Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B67C9A0348"
-			width      	381
-			height     	187)
-		    (object SubSysView "Component View::Components Analysis" @35
-			location   	(1408, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@35
-			    location   	(1264, 1323)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	288
-			    justify    	0
-			    label      	"Components Analysis")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40D969B300E0"
-			width      	300
-			height     	150)))))
-    process_structure 	(object Processes
-	quid       	"34DBB4830144"
-	ProcsNDevs 	(list
-	    (object Processor "<processor name>"
-		quid       	"34DBBD4300B4"
-		documentation 	"This node provides <enter a short description here of the functionality and capability of the node>."
-		connections 	(list connection_list
-		    (object Connection_Relationship
-			quid       	"34DBBD4B008C"
-			supplier   	"<device name>"
-			quidu      	"34DBBD47019A"
-			supplier_is_device 	TRUE))
-		characteristics 	""
-		scheduling 	"Preemptive"
-		processes  	(list processes
-		    (object Process "<process name>"
-			quid       	"35DB411001D6"
-			documentation 	"This process corresponds to the process with the same name in the Logical View::Process Model."
-			stereotype 	"process"
-			priority   	"")
-		    (object Process "<thread name>"
-			quid       	"35DB41720348"
-			documentation 	"This process corresponds to the thread with the same name in the Logical View::Process Model."
-			stereotype 	"thread"
-			priority   	"")))
-	    (object Device "<device name>"
-		quid       	"34DBBD47019A"
-		documentation 	"This device provides <enter a short description of the capability the device provides> for the system."
-		characteristics 	"")
-	    (object Process_Diagram "Deployment View"
-		quid       	"34DBB4830146"
-		title      	"Deployment View"
-		documentation 	
-|The Deployment View in Rational Unified Process
-|
-|Defines the typical physical network configurations, including those typically used by end users, as well as special configurations used for development and test.
-|
-|See Rational Unified Process:
-|Activity: Describe Distribution
-|
-|This diagram will be a part of  the SoDA template-generated Software Architecture Document under the "Deployment  View" .
-		
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object ProcessorView "<processor name>" @36
-			location   	(512, 1056)
-			label      	(object ItemLabel
-			    Parent_View 	@36
-			    location   	(276, 900)
-			    nlines     	2
-			    max_width  	400
-			    justify    	0
-			    label      	"<processor name>")
-			icon_style 	"Label"
-			quidu      	"34DBBD4300B4"
-			width      	475
-			height     	381
-			annotation 	3)
-		    (object DeviceView "<device name>" @37
-			location   	(1040, 1056)
-			label      	(object ItemLabel
-			    Parent_View 	@37
-			    location   	(867, 950)
-			    nlines     	2
-			    max_width  	275
-			    justify    	0
-			    label      	"<device name>")
-			icon_style 	"Icon"
-			quidu      	"34DBBD47019A"
-			width      	350
-			height     	282
-			annotation 	0)
-		    (object ConnectionView "" @38
-			stereotype 	TRUE
-			quidu      	"34DBBD4B008C"
-			client     	@36
-			supplier   	@37
-			line_style 	0)
-		    (object NoteView @39
-			location   	(816, 304)
-			label      	(object ItemLabel
-			    Parent_View 	@39
-			    location   	(38, 29)
-			    fill_color 	13434879
-			    nlines     	11
-			    max_width  	1521
-			    label      	
-|This Diagram defines the typical physical network configurations, including those typically used by end users, as well as special configurations used for development and test.
-|
-|· Allocate processes to the various nodes. Allocation takes into account the capacity of the nodes (in terms of
-|both memory and processing), bandwidth of the communication medium (bus, LANs, WANs), and the
-|availability of the hardware and communication links, rerouting, and so on.
-|
-|See, Rational Unified Process:
-|Activity: Describe Distribution
-			    )
-			line_color 	3342489
-			fill_color 	13434879
-			width      	1581
-			height     	563)))))
-    properties 	(object Properties
-	attributes 	(list Attribute_Set
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"propertyId"
-		value      	"783606378")
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CreatableSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Private"
-				value      	221)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"PublicNotCreatable"
-				value      	213)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"SingleUse"
-				value      	214)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalSingleUse"
-				value      	215)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"MultiUse"
-				value      	219)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalMultiUse"
-				value      	220)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionBase"
-			value      	("BaseSet" 222))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionExplicit"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionCompare"
-			value      	("CompareSet" 202))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Creatable"
-			value      	("CreatableSet" 221))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateInitialization"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateTermination"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CollectionClass"
-			value      	"Collection")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CompareSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"(none)"
-				value      	202)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Binary"
-				value      	203)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Text"
-				value      	204)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateModel"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"InstancingSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Private"
-				value      	221)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"PublicNotCreatable"
-				value      	213)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"SingleUse"
-				value      	214)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalSingleUse"
-				value      	215)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"MultiUse"
-				value      	219)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalMultiUse"
-				value      	220)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"BaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"(none)"
-				value      	222)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"0"
-				value      	223)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"1"
-				value      	224)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Instancing"
-			value      	("InstancingSet" 221))))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OperationName"
-			value      	"$operation")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"LibraryName"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"AliasName"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"IsStatic"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"EntryCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ExitCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ReplaceExistingBody"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DefaultBody"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"IsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"New"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"WithEvents"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Subscript"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"NameIfUnlabeled"
-			value      	"the$supplier")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateGetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateSetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateLetOperation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"New"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"WithEvents"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Subscript"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"NameIfUnlabeled"
-			value      	"the$supplier")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateGetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateSetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateLetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"FullName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Inherit"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ImplementsDelegation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"FullName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ProjectFile"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateModel"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ImportReferences"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"QuickImport"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"VisualStudio"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Repository"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"SCC"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"propertyId"
-		value      	"360000002")
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"PrimaryKeyColumnName"
-			value      	"_ID")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5,0)")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"SchemaNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"SchemaNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TableNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TypeNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TypeNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ViewNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ViewNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"VarrayNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"VarrayNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NestedTableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NestedTableNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ObjectTableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ObjectTableNameSuffix"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsSchema"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OID"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"WhereClause"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CheckConstraint"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypeLength"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypePrecision"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypeScale"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionOfREFS"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"MethodKind"
-			value      	("MethodKindSet" 1903))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OverloadID"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsReadNoDataState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsReadNoProcessState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsWriteNoDataState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsWriteNoProcessState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsSelfish"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerType"
-			value      	("TriggerTypeSet" 1801))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerEvent"
-			value      	("TriggerEventSet" 1601))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerText"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerReferencingNames"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerForEach"
-			value      	("TriggerForEachSet" 1701))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerWhenClause"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"MethodKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"MapMethod"
-				value      	1901)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"OrderMethod"
-				value      	1902)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Function"
-				value      	1903)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Procedure"
-				value      	1904)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Operator"
-				value      	1905)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Constructor"
-				value      	1906)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Destructor"
-				value      	1907)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Trigger"
-				value      	1908)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Calculated"
-				value      	1909)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"AFTER"
-				value      	1801)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"BEFORE"
-				value      	1802)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSTEAD OF"
-				value      	1803)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerForEachSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"ROW"
-				value      	1701)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"STATEMENT"
-				value      	1702)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerEventSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT"
-				value      	1601)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"UPDATE"
-				value      	1602)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"DELETE"
-				value      	1603)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR UPDATE"
-				value      	1604)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR DELETE"
-				value      	1605)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"UPDATE OR DELETE"
-				value      	1606)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR UPDATE OR DELETE"
-				value      	1607)))))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NullsAllowed"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Precision"
-			value      	"2")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Scale"
-			value      	"6")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsIndex"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsPrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"cg"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PrecompiledHeader"
-			value      	"stdafx.h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ImplementationType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ClassKey"
-			value      	"class")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"PutBodiesInSpec"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultConstructor"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDefaultConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExplicitDefaultConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateCopyConstructor"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineCopyConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExplicitCopyConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDestructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDestructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssignmentOperation"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssignmentOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEqualityOperations"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineEqualityOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StorageMgmtVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StreamVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ThreeKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"KindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FriendKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareAndDefine"
-				value      	199)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareOnly"
-				value      	205)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DoNotDeclare"
-				value      	206)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"VisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultSpecifier"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultSpecifier"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExtensionlessFileName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeFormat"
-			value      	(value Text 
-|// $package
-|#include "$file"
-|
-			))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludePrecompiledHeader"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeOrder"
-			value      	"AMIR")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"TypesDefined"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeClosure"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExtensionlessFileName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeFormat"
-			value      	(value Text 
-|// $package
-|#include "$file"
-|
-			))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludePrecompiledHeader"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeOrder"
-			value      	"AMIR")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"TypesDefined"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeClosure"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKind"
-			value      	("OperationKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsExplicit"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Inline"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"EntryCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExitCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"BodyAnnotations"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsOneWay"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Raises"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CCRegion"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAbstractBody"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Ordered"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedHasRelType"
-			value      	("HasRelTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"HasRelTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Association"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Inherit"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"InstanceArguments"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerGet"
-			value      	"$data.get($keys)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerSet"
-			value      	"$data.set($keys,$value)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedContainer"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassContainer"
-			value      	"$supplier *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassInitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetSetByReference"
-			value      	("QualifiedGetSetByReferenceSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetSetByReferenceSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_GetSetByReference"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassForwardReferenceOnly"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtAttributeVisibility"
-				value      	211)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CCRegion"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BodyReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Subsystem"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DirectoryIsOnSearchList"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"PrecompiledHeader"
-			value      	"stdafx.h")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Category"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsNamespace"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Indent"
-			value      	2)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Version"
-			value      	"5.0")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCClassTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCClassTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Interface_Part"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Connection_Part"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Class_Factory"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CObjectFunctionality"
-			value      	("CObjectFunctionalitySet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CObjectFunctionalitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dynamic"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dyncreate"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Serial"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOverrideGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDataGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DATA_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateFieldGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_FIELD_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMessageGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMessageMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MESSAGE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEFactory"
-			value      	("OLEFactorySet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEFactorySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Built_in"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Simple"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Licensed"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEName"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEClassID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOLECtlType"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLECtlType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOLETypeLib"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibMajor"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibMinor"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GeneratePropPageIDs"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEPropPageIDs"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDispatchMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockProperties"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockFunctions"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DispatchDefValue"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDispIdEnum"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISP_ID_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInterfaceMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"INTERFACE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"InitInterface"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateEventMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockEvents"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateEventSinkMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PropNotifySinks"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateConnectionMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CONNECTION_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"ConnectionPointIID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"InheritanceType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLECommands"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MFCDeclares"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"ATL_Declares"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateCOMMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"COM_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateConnectionPointMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CONNECTION_POINT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMsgMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GeneratePropertyMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PROPERTY_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MFCImplements"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCOperationTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCOperationTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Virtual_Override"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Message_Handler"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dispatch_Handler"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Event_Firing_Function"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Event_Sink_Handler"
-				value      	5)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Std_OLE_Method"
-				value      	6)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Command_Parser"
-				value      	7)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Get_Function"
-				value      	8)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Set_Function"
-				value      	9)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Notify_Function"
-				value      	10)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Macro_Generated_Function"
-				value      	11)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MESSAGE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"BodyImage"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateIncludesGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_INCLUDES_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInsertLocation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateIncludesGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_INCLUDES_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInsertLocation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"DDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBase"
-			value      	("DataBaseSet" 800))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"DDL"
-				name       	"ANSI"
-				value      	800)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Oracle"
-				value      	801)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"SQLServer"
-				value      	802)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Sybase"
-				value      	803)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Watcom"
-				value      	804)))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnName"
-			value      	"Id")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5)")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ViewName"
-			value      	"V_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"TableName"
-			value      	"T_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"InheritSuffix"
-			value      	"_V")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"BaseViews"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ColumnType"
-			value      	"VARCHAR")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"NullsOK"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Unique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"framework"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"IDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"StopOnError"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ImplementationType"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDefaultSpecifier"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DefaultSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLElement"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLSpecificationType"
-			value      	("IDLSpecSet" 22))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLSpecSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Interface"
-				value      	22)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Typedef"
-				value      	54)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Enumeration"
-				value      	8)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Const"
-				value      	71)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Exception"
-				value      	61)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Struct"
-				value      	51)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Union"
-				value      	81)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateIDLModule"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"OperationIsOneWay"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Raises"
-			value      	"")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ConstValue"
-			value      	"")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"BoundedHasRelType"
-			value      	("HasRelTypeSet" 47))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"HasRelTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Subsystem"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Java"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"Java"
-			name       	"UsePrefixes"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"InstanceVariablePrefix"
-			value      	"m_")
-		    (object Attribute
-			tool       	"Java"
-			name       	"ClassVariablePrefix"
-			value      	"s_")
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultAttributeDataType"
-			value      	"int")
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultOperationReturnType"
-			value      	"void")
-		    (object Attribute
-			tool       	"Java"
-			name       	"Editor"
-			value      	("EditorType" 100))
-		    (object Attribute
-			tool       	"Java"
-			name       	"VM"
-			value      	("VMType" 200))
-		    (object Attribute
-			tool       	"Java"
-			name       	"ClassPath"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"EditorType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"BuiltIn"
-				value      	100)
-			    (object Attribute
-				tool       	"Java"
-				name       	"WindowsShell"
-				value      	101)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"VMType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Sun"
-				value      	200)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Microsoft"
-				value      	201)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GlobalImports"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"OpenBraceClassStyle"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"UseTabs"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"UseSpaces"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"SpacingItems"
-			value      	3)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CommentLength"
-			value      	2)
-		    (object Attribute
-			tool       	"Java"
-			name       	"RoseDefaultCommentStyle"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"AsteriskCommentStyle"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavaCommentStyle"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocAuthor"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocDeprecated"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocException"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocParam"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocReturn"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSee"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerial"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerialdata"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerialfield"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSince"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocLink"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDefaultConstructor"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"ConstructorIs"
-			value      	("Ctor_Set" 62))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Ctor_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"public"
-				value      	62)
-			    (object Attribute
-				tool       	"Java"
-				name       	"protected"
-				value      	63)
-			    (object Attribute
-				tool       	"Java"
-				name       	"private"
-				value      	64)
-			    (object Attribute
-				tool       	"Java"
-				name       	"package"
-				value      	65)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateFinalizer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateStaticInitializer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateInstanceInitializer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Static"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CmIdentification"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"AdditionalImports"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CmIdentification"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"AdditionalImports"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Abstract"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Static"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Native"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Synchronized"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultBody"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"ReplaceExistingBody"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Transient"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Volatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"PropertyType"
-			value      	("BeanProperty_Set" 71))
-		    (object Attribute
-			tool       	"Java"
-			name       	"BeanProperty_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Not A Property"
-				value      	71)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Simple"
-				value      	72)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Bound"
-				value      	73)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Constrained"
-				value      	74)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"IndividualChangeMgt"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write"
-			value      	("Read/Write_Set" 81))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read & Write"
-				value      	81)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read Only"
-				value      	82)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Write Only"
-				value      	83)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateFullyQualifiedTypes"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"InitialValue"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Transient"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Volatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"PropertyType"
-			value      	("BeanProperty_Set" 71))
-		    (object Attribute
-			tool       	"Java"
-			name       	"BeanProperty_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Not A Property"
-				value      	71)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Simple"
-				value      	72)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Bound"
-				value      	73)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Constrained"
-				value      	74)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"IndividualChangeMgt"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write"
-			value      	("Read/Write_Set" 81))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read & Write"
-				value      	81)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read Only"
-				value      	82)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Write Only"
-				value      	83)))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Objectory41"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"TypeLibImporter"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"ROBE"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Editor"
-			value      	("EditorType" 100))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IncludePath"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"StopOnError"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"EditorType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"BuiltIn"
-				value      	100)
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"WindowsShell"
-				value      	101)))))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ImplementationType"
-			value      	"")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"OperationIsOneWay"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Order"
-			value      	"")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Order"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rational Unified Process"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Web Publisher"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"SoDA"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"COM"
-		name       	"propertyId"
-		value      	"783606378")
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"TypeKinds"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"COM"
-				name       	"enum"
-				value      	100)
-			    (object Attribute
-				tool       	"COM"
-				name       	"record"
-				value      	101)
-			    (object Attribute
-				tool       	"COM"
-				name       	"module"
-				value      	102)
-			    (object Attribute
-				tool       	"COM"
-				name       	"interface"
-				value      	103)
-			    (object Attribute
-				tool       	"COM"
-				name       	"dispinterface"
-				value      	104)
-			    (object Attribute
-				tool       	"COM"
-				name       	"coclass"
-				value      	105)
-			    (object Attribute
-				tool       	"COM"
-				name       	"alias"
-				value      	106)
-			    (object Attribute
-				tool       	"COM"
-				name       	"union"
-				value      	107)
-			    (object Attribute
-				tool       	"COM"
-				name       	"max"
-				value      	108)
-			    (object Attribute
-				tool       	"COM"
-				name       	"(none)"
-				value      	109)))
-		    (object Attribute
-			tool       	"COM"
-			name       	"kind"
-			value      	("TypeKinds" 105))
-		    (object Attribute
-			tool       	"COM"
-			name       	"uuid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"version"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpcontext"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"dllname"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"alias"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"COM"
-			name       	"id"
-			value      	"")))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"filename"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"library"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"imports"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"uuid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"version"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpfile"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpcontext"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"lcid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Version Control"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Data Access"
-			name       	"project"
-			value      	" ")))
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"RequisitePro"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler2.1__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"$ROSECPP_SOURCE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"128vx_b")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler3.0__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"$ROSECPP_SOURCE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"128vx_b")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)))
-	    (object Attribute
-		tool       	"Rose Model Integrator"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Param"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Param"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ByVal"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ByRef"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Optional"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ParamArray"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"COM"
-			name       	"id"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UpdateATL"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"SmartPointersOnAssoc"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"GenerateImports"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"PutImportsIn"
-			value      	"stdafx.h")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"FullPathInImports"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UseImportAttributes"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ImportAttributes"
-			value      	"no_namespace named_guids")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ImportProjTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DefaultTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"TypeLibLocation"
-			value      	"")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CompileProjTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"RvcPtyVersion"
-			value      	"1.0")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ModelIDStyle"
-			value      	2)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DocStyle"
-			value      	1)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"GenerateIncludes"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ApplyPattern"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CreateBackupFiles"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"SupportCodeName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DocRevEngineer"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CreateOverviewDiagrams"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UpdateModelIDsInCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"AttributeTypes"
-			value      	(value Text 
-|attr1=bool
-|attr2=short
-|attr3=int
-|attr4=long
-|attr5=char
-|attr6=float
-|attr7=double
-|attr8=void
-|attr9=clock_t
-|attr10=_complex
-|attr11=_dev_t
-|attr12=div_t
-|attr13=_exception
-|attr14=FILE
-|attr15=_finddata_t
-|attr16=_FPIEEE_RECORD
-|attr17=fpos_t
-|attr18=_HEAPINFO
-|attr19=jmp_buf
-|attr20=lconv
-|attr21=ldiv_t
-|attr22=_off_t
-|attr23=_onexit_t
-|attr24=_PNH
-|attr25=ptrdiff_t
-|attr26=sig_atomic_t
-|attr27=size_t
-|attr28=_stat
-|attr29=time_t
-|attr30=_timeb
-|attr31=tm
-|attr32=_utimbuf
-|attr33=va_list
-|attr34=wchar_t
-|attr35=wctrans_t
-|attr36=wctype_t
-|attr37=_wfinddata_t
-|attr38=_wfinddatai64_t
-|attr39=wint_t
-|attr40=ABORTPROC
-|attr41=ACMDRIVERENUMCB
-|attr42=ACMDRIVERPROC
-|attr43=ACMFILTERCHOOSEHOOKPROC
-|attr44=ACMFILTERENUMCB
-|attr45=ACMFILTERTAGENUMCB
-|attr46=ACMFORMATCHOOSEHOOKPROC
-|attr47=ACMFORMATENUMCB
-|attr48=ACMFORMATTAGENUMCB
-|attr49=APPLET_PROC
-|attr50=ATOM
-|attr51=BOOL
-|attr52=BOOLEAN
-|attr53=BYTE
-|attr54=CALINFO_ENUMPROC
-|attr55=CALLBACK
-|attr56=CHAR
-|attr57=COLORREF
-|attr58=CONST
-|attr59=CRITICAL_SECTION
-|attr60=CTRYID
-|attr61=DATEFMT_ENUMPROC
-|attr62=DESKTOPENUMPROC
-|attr63=DLGPROC
-|attr64=DRAWSTATEPROC
-|attr65=DWORD
-|attr66=EDITWORDBREAKPROC
-|attr67=ENHMFENUMPROC
-|attr68=ENUMRESLANGPROC
-|attr69=ENUMRESNAMEPROC
-|attr70=ENUMRESTYPEPROC
-|attr71=FARPROC
-|attr72=FILE_SEGMENT_ELEMENT
-|attr73=FLOAT
-|attr74=FONTENUMPROC
-|attr75=GOBJENUMPROC
-|attr76=GRAYSTRINGPROC
-|attr77=HACCEL
-|attr78=HANDLE
-|attr79=HBITMAP
-|attr80=HBRUSH
-|attr81=HCOLORSPACE
-|attr82=HCONV
-|attr83=HCONVLIST
-|attr84=HCURSOR
-|attr85=HDC
-|attr86=HDDEDATA
-|attr87=HDESK
-|attr88=HDROP
-|attr89=HDWP
-|attr90=HENHMETAFILE
-|attr91=HFILE
-|attr92=HFONT
-|attr93=HGDIOBJ
-|attr94=HGLOBAL
-|attr95=HHOOK
-|attr96=HICON
-|attr97=HIMAGELIST
-|attr98=HIMC
-|attr99=HINSTANCE
-|attr100=HKEY
-|attr101=HKL
-|attr102=HLOCAL
-|attr103=HMENU
-|attr104=HMETAFILE
-|attr105=HMODULE
-|attr106=HMONITOR
-|attr107=HOOKPROC
-|attr108=HPALETTE
-|attr109=HPEN
-|attr110=HRGN
-|attr111=HRSRC
-|attr112=HSZ
-|attr113=HTREEITEM
-|attr114=HWINSTA
-|attr115=HWND
-|attr116=INT
-|attr117=IPADDR
-|attr118=LANGID
-|attr119=LCID
-|attr120=LCSCSTYPE
-|attr121=LCSGAMUTMATCH
-|attr122=LCTYPE
-|attr123=LINEDDAPROC
-|attr124=LOCALE_ENUMPROC
-|attr125=LONG
-|attr126=LONGLONG
-|attr127=LPARAM
-|attr128=LPBOOL
-|attr129=LPBYTE
-|attr130=LPCCHOOKPROC
-|attr131=LPCFHOOKPROC
-|attr132=LPCOLORREF
-|attr133=LPCRITICAL_SECTION
-|attr134=LPCSTR
-|attr135=LPCTSTR
-|attr136=LPCVOID
-|attr137=LPCWSTR
-|attr138=LPDWORD
-|attr139=LPFIBER_START_ROUTINE
-|attr140=LPFRHOOKPROC
-|attr141=LPHANDLE
-|attr142=LPHANDLER_FUNCTION
-|attr143=LPINT
-|attr144=LPLONG
-|attr145=LPOFNHOOKPROC
-|attr146=LPPAGEPAINTHOOK
-|attr147=LPPAGESETUPHOOK
-|attr148=LPPRINTHOOKPROC
-|attr149=LPPROGRESS_ROUTINE
-|attr150=LPSETUPHOOKPROC
-|attr151=LPSTR
-|attr152=LPSTREAM
-|attr153=LPTHREAD_START_ROUTINE
-|attr154=LPTSTR
-|attr155=LPVOID
-|attr156=LPWORD
-|attr157=LPWSTR
-|attr158=LRESULT
-|attr159=LUID
-|attr160=PBOOL
-|attr161=PBOOLEAN
-|attr162=PBYTE
-|attr163=PCHAR
-|attr164=PCRITICAL_SECTION
-|attr165=PCSTR
-|attr166=PCTSTR
-|attr167=PCWCH
-|attr168=PCWSTR
-|attr169=PDWORD
-|attr170=PFLOAT
-|attr171=PFNCALLBACK
-|attr172=PHANDLE
-|attr173=PHANDLER_ROUTINE
-|attr174=PHKEY
-|attr175=PINT
-|attr176=PLCID
-|attr177=PLONG
-|attr178=PLUID
-|attr179=PROPENUMPROC
-|attr180=PROPENUMPROCEX
-|attr181=PSHORT
-|attr182=PSTR
-|attr183=PTBYTE
-|attr184=PTCHAR
-|attr185=PTIMERAPCROUTINE
-|attr186=PTSTR
-|attr187=PUCHAR
-|attr188=PUINT
-|attr189=PULONG
-|attr190=PUSHORT
-|attr191=PVOID
-|attr192=PWCHAR
-|attr193=PWORD
-|attr194=PWSTR
-|attr195=REGISTERWORDENUMPROC
-|attr196=REGSAM
-|attr197=SC_HANDLE
-|attr198=SC_LOCK
-|attr199=SENDASYNCPROC
-|attr200=SERVICE_STATUS_HANDLE
-|attr201=SHORT
-|attr202=TBYTE
-|attr203=TCHAR
-|attr204=TIMEFMT_ENUMPROC
-|attr205=TIMERPROC
-|attr206=UCHAR
-|attr207=UINT
-|attr208=ULONG
-|attr209=ULONGLONG
-|attr210=UNSIGNED
-|attr211=USHORT
-|attr212=VOID
-|attr213=WCHAR
-|attr214=WINAPI
-|attr215=WINSTAENUMPROC
-|attr216=WNDENUMPROC
-|attr217=WNDPROC
-|attr218=WORD
-|attr219=WPARAM
-|attr220=YIELDPROC
-|attr221=CPoint
-|attr222=CRect
-|attr223=CSize
-|attr224=CString
-|attr225=CTime
-|attr226=CTimeSpan
-|attr227=CCreateContext
-|attr228=CMemoryState
-|attr229=COleSafeArray
-|attr230=CPrintInfo
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Containers"
-			value      	(value Text 
-|cont1=CArray<$TYPE, $TYPE&>
-|cont2=CByteArray
-|cont3=CDWordArray
-|cont4=CObArray
-|cont5=CPtrArray
-|cont6=CStringArray
-|cont7=CUIntArray
-|cont8=CWordArray
-|cont9=CList<$TYPE, $TYPE&>
-|cont10=CPtrList
-|cont11=CObList
-|cont12=CStringList
-|cont13=CMapWordToPtr
-|cont14=CMapPtrToWord
-|cont15=CMapPtrToPtr
-|cont16=CMapWordToOb
-|cont17=CMapStringToPtr
-|cont18=CMapStringToOb
-|cont19=CMapStringToString
-|cont20=CTypedPtrArray<CPtrArray, $TYPE*>
-|cont21=CTypedPtrArray<CObArray, $TYPE*>
-|cont22=CTypedPtrList<CObList, $TYPE*>
-|cont23=CTypedPtrList<CPtrList, $TYPE*>
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ClassMethods"
-			value      	(value Text 
-|*_body=// ToDo: Add your specialized code here and/or call the base class
-|cm1=$NAME()
-|cm2=$NAME(orig:const $NAME&)
-|cm3=<<virtual>> ~$NAME()
-|cm4=operator=(rhs:$NAME&):$NAME&
-|cm4_body=// ToDo: Add your specialized code here and/or call the base class||return rhs;
-|cm5=<<const>> operator==(rhs:const $NAME&):bool
-|cm5_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm6=<<const>> operator!=(rhs:$NAME&):bool
-|cm6_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm7=<<const>> operator<(rhs:$NAME&):bool
-|cm7_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm8=<<const>> operator>(rhs:$NAME&):bool
-|cm8_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm9=<<const>> operator<=(rhs:$NAME&):bool
-|cm9_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm10=<<const>> operator>=(rhs:$NAME&):bool
-|cm10_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm11=<<friend>> operator>>(i:istream&, rhs:$NAME&):istream&
-|cm11_body=// ToDo: Add your specialized code here and/or call the base class||return i;
-|cm12=<<friend>> operator<<(o:ostream&, rhs:const $NAME&):ostream&
-|cm12_body=// ToDo: Add your specialized code here and/or call the base class||return o;
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Accessors"
-			value      	(value Text 
-|agf=<<const>> get_$BASICNAME():const $TYPE
-|agf_body=return $NAME;
-|asf=set_$BASICNAME(value:$TYPE):void
-|asf_body=$NAME = value;|return;
-|agv=<<const>> get_$BASICNAME():const $TYPE&
-|agv_body=return $NAME;
-|asv=set_$BASICNAME(value:$TYPE&):void
-|asv_body=$NAME = value;|return;
-|agp=<<const>> get_$BASICNAME():const $TYPE
-|agp_body=return $NAME;
-|asp=set_$BASICNAME(value:$TYPE):void
-|asp_body=$NAME = value;|return;
-|agr=<<const>> get_$BASICNAME():const $TYPE
-|agr_body=return $NAME;
-|asr=set_$BASICNAME(value:$TYPE):void
-|asr_body=$NAME = value;|return;
-|aga=<<const>> get_$BASICNAME(index:int):const $TYPE
-|aga_body=return $NAME[index];
-|asa=set_$BASICNAME(index:int, value:$TYPE):void
-|asa_body=$NAME[index] = value;|return;
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Conditionals"
-			value      	(value Text 
-|*_decl=#ifdef _DEBUG
-|*_base=CObject
-|cond1=<<virtual, const>> AssertValid():void
-|cond1_body=$SUPERNAME::AssertValid();
-|cond2=<<virtual, const>> Dump(dc:CDumpContext&):void
-|cond2_body=$SUPERNAME::Dump(dc);
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Patterns"
-			value      	(value Text 
-|patrn1=cm1,cm3,cond1,cond2
-|Patrn1_name=Default
-			))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InternalMap"
-			value      	(value Text 
-|*:AUTO:AUTO
-|
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ExportMap"
-			value      	(value Text 
-|*:AUTO:AUTO
-|
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialSourceIncludes"
-			value      	(value Text 
-|"stdafx.h"
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialHeaderIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Copyright"
-			value      	(value Text "Copyright (C) 1991 - 1999 Rational Software Corporation"))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Const"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialValue"
-			value      	"")))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Inline"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DefaultBody"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"HiddenTool"
-		value      	FALSE))
-	quid       	"34DBB4830145"))
--- a/tzservices/tzserver/analysis/DAYLIGHT SAVINGS ANALYSIS.md~	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6210 +0,0 @@
-
-(object Petal
-    version    	43
-    _written   	"Rose 6.5.9232.10"
-    charSet    	0)
-
-(object Design "Logical View"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"36D487460258"
-    defaults   	(object defaults
-	rightMargin 	0.250000
-	leftMargin 	0.250000
-	topMargin  	0.250000
-	bottomMargin 	0.500000
-	pageOverlap 	0.250000
-	clipIconLabels 	TRUE
-	autoResize 	TRUE
-	snapToGrid 	TRUE
-	gridX      	16
-	gridY      	16
-	defaultFont 	(object Font
-	    size       	9
-	    face       	"Arial"
-	    bold       	FALSE
-	    italics    	FALSE
-	    underline  	FALSE
-	    strike     	FALSE
-	    color      	0
-	    default_color 	TRUE)
-	showMessageNum 	1
-	showClassOfObject 	TRUE
-	notation   	"Unified")
-    root_usecase_package 	(object Class_Category "Use Case View"
-	quid       	"34DBB4830142"
-	documentation 	
-|The Use Case View organizes the Use-Case Model and the optional Business Use-Case Model.
-|
-	
-	exportControl 	"Public"
-	global     	TRUE
-	logical_models 	(list unit_reference_list
-	    (object Class_Category "Business Use-Case Model"
-		quid       	"35B677D701B8"
-		documentation 	
-|Optional Model:
-|The business modeling workflow in Rational Unified Process produces two models: the business use-case model, and the business object model. Both show the business 
-|processes, but different aspects of them. In the business use-case model each business use case represents a business process, described (text and/or activity diagrams) from an "external" view point without worrying about who does what to whom inside of the organization. 
-|In the business object model, you include realizations of each business use case to show how workers and entities collaborate to perform the process. You do that using class diagrams, activity diagrams with swimlanes, collaboration diagrams, and/or interaction diagrams.
-|
-|<Any additional description of the Business Use Case Model, such as modeling conventions that the reader/reviewer may need to understand the model, should be described here.>
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list)
-		logical_presentations 	(list unit_reference_list
-		    (object UseCaseDiagram "Global View of Business Actors and Business Use Cases"
-			quid       	"35C0DFF50172"
-			title      	"Global View of Business Actors and Business Use Cases"
-			documentation 	"This is a global view of the system showing all Busines Use Cases and Business Actors.  It is intended to be an overview diagram, so if the diagram becomes too complex for easy comprehension, use several diagrams, each of which should focus on a different aspect of the system.  Usually, organizing use case diagrams around actors is a good approach."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @1
-				location   	(464, 352)
-				label      	(object ItemLabel
-				    Parent_View 	@1
-				    location   	(42, 11)
-				    fill_color 	13434879
-				    nlines     	14
-				    max_width  	809
-				    label      	
-|Global View of Business Actors and BusinessUse Cases
-|
-|This diagram presents all Business Actors and all concrete Business Use Cases (those that are directly instantiable).
-|
-|Related Rational Unified Process Activities:
-|- Activity: Find Business Actors and Use Cases
-|- Activity: Structure the Business Use Case Model
-|
-|*Note: this note may be deleted once the diagram is created.
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	869
-				height     	694)
-			    (object NoteView @2
-				location   	(1280, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@2
-				    location   	(942, 29)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275)))))
-	    (object Class_Category "Use-Case Model"
-		is_unit    	TRUE
-		is_loaded  	FALSE
-		file_name  	"M:\\DST\\analysis\\UseCases.cat"
-		quid       	"35B677F4010E"))
-	logical_presentations 	(list unit_reference_list
-	    (object UseCaseDiagram "Main"
-		quid       	"35C6339B029F"
-		title      	"Main"
-		documentation 	
-|This diagram depicts the relationships between the packages (models) contained in the 'Use-Case View": the Use-Case Model (for the system) and the Business Use-Case Model (describing the business).
-		
-		zoom       	90
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object CategoryView "Use Case View::Use-Case Model" @3
-			location   	(400, 864)
-			font       	(object Font
-			    size       	10)
-			label      	(object ItemLabel
-			    Parent_View 	@3
-			    location   	(256, 780)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	288
-			    justify    	0
-			    label      	"Use-Case Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B677F4010E"
-			width      	300
-			height     	180)
-		    (object NoteView @4
-			location   	(1168, 592)
-			font       	(object Font
-			    size       	10)
-			label      	(object ItemLabel
-			    Parent_View 	@4
-			    location   	(941, 390)
-			    fill_color 	13434879
-			    nlines     	9
-			    max_width  	419
-			    label      	"The Use-Case Model is traceable to (and derives from) the Business Model.  The system (as described in the Use Case Model) provides behavior that supports the business.")
-			line_color 	3342489
-			fill_color 	13434879
-			width      	479
-			height     	416)
-		    (object CategoryView "Use Case View::Business Use-Case Model" @5
-			location   	(384, 320)
-			label      	(object ItemLabel
-			    Parent_View 	@5
-			    location   	(189, 229)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	390
-			    justify    	0
-			    label      	"Business Use-Case Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B677D701B8"
-			width      	403
-			height     	194)
-		    (object ImportView "" @6
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"35C633DA030C"
-			client     	@3
-			supplier   	@5
-			line_style 	0)
-		    (object AttachView "" @7
-			stereotype 	TRUE
-			line_color 	3342489
-			client     	@6
-			supplier   	@4
-			line_style 	0)))))
-    root_category 	(object Class_Category "Logical View"
-	quid       	"34DBB4830141"
-	documentation 	
-|Rational Unified Process uses the "Logical View in Rose" to organize the Design Model  and the Process View and the optional Business Object Model and Analysis Model.
-	
-	exportControl 	"Public"
-	global     	TRUE
-	subsystem  	"Component View"
-	quidu      	"34DBB4830143"
-	logical_models 	(list unit_reference_list
-	    (object Class_Category "Analysis Model"
-		quid       	"35B678170028"
-		documentation 	
-|This model is optional.
-|The Analysis Model contains a set of Analysis Classes, which describe an abstract realization of the use cases of the system.  The analysis classes evolve into associated design elements which are modeled in the Design Model.  
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list
-		    (object Class_Category "Business Object Model"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalBusinessObjects.cat"
-			quid       	"35B678080064")
-		    (object Class_Category "TZ Compiler"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\TZCOMPILER.CAT"
-			quid       	"40E569BC024F")
-		    (object Class_Category "LTClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\Classes.cat"
-			quid       	"40A89DC203B0")
-		    (object Class_Category "Time Zone Database Management"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalTZDBM.cat"
-			quid       	"40B1E4A6003A")
-		    (object Class_Category "Local Time Conversion"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalLocaltimeConv.cat"
-			quid       	"40B1D43200B7")
-		    (object Class_Category "System Time Management"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\LogicalSysTimeMngmt.cat"
-			quid       	"40B1D49203C5")
-		    (object Class_Category "TZClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\TZClasses.cat"
-			quid       	"40F3CEAF0324")
-		    (object Class_Category "BClasses"
-			is_unit    	TRUE
-			is_loaded  	FALSE
-			file_name  	"M:\\DST\\analysis\\BClasses.cat"
-			quid       	"40F3CFB10172"))
-		logical_presentations 	(list unit_reference_list))
-	    (object Class_Category "Design Model"
-		quid       	"35B6782302DA"
-		documentation 	
-|The Design Model in Rational Unified Process.
-|The design model is adapted to model the real implementation environment, and serves as an abstraction of the source code. It is a "blueprint" of how the source code is structured and written. 
-|
-|The design model is a hierarchy of packages (design subsystems and design-service  packages), with "leaves" that are classes. Subsystems are a design "view" of the components that are defined in the Implementation Model.
-|
-|The design model hierarchy consists of layers. 
-|
-|Classes represent abstractions of classes in the system's implementation. They define the objects, which in turn are abstractions of the objects in the system's implementation. The use cases are realized by the objects, and this is represented by use-case realizations in the Design Model.  Each use-case realization has a realize dependency to a use case in the Use-Case Model. 
-		
-		exportControl 	"Public"
-		logical_models 	(list unit_reference_list
-		    (object Class_Category "<Layer Name> Layer"
-			quid       	"34E3686A00F0"
-			documentation 	
-|The design model is normally organized in layers. The number of layers is not fixed, but varies from situation to situation. 
-|
-|During architectural analysis, focus is normally on the two high-level layers, that is, the application and business-specific layers;  this is what is meant by the "high-level organization of subsystems." The other lower-level layers are in focus during architectural design, refer to the activity Architectural Design for more information.
-|
-|Layers are identified using the naming conventions shown in the name of this package. 
-			
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Class_Category "<package name>"
-				quid       	"34E36BB7017C"
-				documentation 	
-|<Enter a short description of the package here.  A package should be used in cases where a set of classes and/or other packages need to be grouped together for model organization purposes.  Though the contents of the package can have public visibility, which makes them visible to model elements outside the containing package, packages are primarily just grouping mechanisms.  
-|
-|If a set of classes is to be encapsulated and can be hidden behind a well-defined interface, a subsystem is a more appropriate container>
-				
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list)
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "<package name> - Dependencies"
-					quid       	"37BC2256004D"
-					title      	"<package name> - Dependencies"
-					documentation 	"This diagram shows the package itself and the packages that it is dependent of. That is useful to know for instance when the package is a separate unit that can be reused in other systems."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))
-				    (object ClassDiagram "<package name> - Interfaces"
-					quid       	"37BC226D026D"
-					title      	"<package name> - Interfaces"
-					documentation 	"This diagram shows only the classes that are visible outside this package. The interfaces of the package."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))))
-			    (object Class_Category "<Subsystem Name>"
-				quid       	"35C0F38200B4"
-				documentation 	
-|<Enter a short description of the subsystem here.  A subsystem should be used in cases where a set of classes and/or other packages need to be encapsulated within a container and hidden behind a set of well-defined interfaces.  By convention, none of the contents of subsystem are visible except the interfaces of the subsystem.  This allows subsystems to be easily replaced, and the implementations changed, provided the interfaces remain unchanged.  It offers a degree of encapsulation greater than that of the package.
-|
-|If a set of classes is merely to be grouped together, but public visibility of classes is still desirable, a package is a more appropriate container.>
-				
-				stereotype 	"subsystem"
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list)
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "<subsystem name> - Dependencies"
-					quid       	"35C0F4220190"
-					title      	"<subsystem name> - Dependencies"
-					documentation 	"This diagram shows the package itself and the packages that it is dependent of. That is useful to know for instance when the package is a separate unit that can be reused in other systems."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list))
-				    (object ClassDiagram "<subsystem name> - Interfaces"
-					quid       	"37BC21080165"
-					title      	"<subsystem name> - Interfaces"
-					documentation 	
-|The Process View in Rational Unified Process
-|This package is used to organize the active classes in the system and will be presented in the SoDA-generated Software Architecture Document, under the "Process View"
-					
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list)))))
-			logical_presentations 	(list unit_reference_list
-			    (object ClassDiagram "All Packages in <Layer Name> - Layer"
-				quid       	"34E36C2903C0"
-				title      	"All Packages in <Layer Name> - Layer"
-				documentation 	"This diagram shows all packages in this - Layer."
-				zoom       	100
-				max_height 	28350
-				max_width  	21600
-				origin_x   	0
-				origin_y   	0
-				items      	(list diagram_item_list))))
-		    (object Class_Category "Use-Case Realizations"
-			quid       	"34E36D3203CA"
-			documentation 	
-|In this Package we will describe "Use Case Realizations" as stereotyped use cases.
-|
-|A use-case realization describes how a particular use case is realized within  the design model, in terms of collaborating objects.
-|
-|A realize dependency is used between the "Use Case Realization" and the "Use Case" in the use-case  model that is realized. 
-|
-|
-			
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Association "$UNNAMED$0"
-				quid       	"35409E9D02A8"
-				stereotype 	"realize"
-				roles      	(list role_list
-				    (object Role "$UNNAMED$1"
-					quid       	"35409E9E0294"
-					supplier   	"Use Case View::Use-Case Model::Use Cases::<Use Case Name>::<Use Case Name>"
-					quidu      	"34E37FB203D4"
-					is_navigable 	TRUE)
-				    (object Role "$UNNAMED$2"
-					quid       	"35409E9E0295"
-					supplier   	"Logical View::Design Model::Use-Case Realizations::<Use-Case Name>::<Use-Case Name>"
-					quidu      	"352F38180276")))
-			    (object Class_Category "<Use-Case Name>"
-				quid       	"35D083E100BE"
-				documentation 	" A separate package is recommended for each Use Case Realization to facilitate access and version control of related use case artifacts."
-				exportControl 	"Public"
-				logical_models 	(list unit_reference_list
-				    (object UseCase "<Use-Case Name>"
-					attributes 	(list Attribute_Set
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProProjectPath"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProProjectGuid"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocumentName"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocumentGuid"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProDocType"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProReqType"
-						value      	"")
-					    (object Attribute
-						tool       	"RequisitePro"
-						name       	"ReqProRequirementId"
-						value      	""))
-					quid       	"352F38180276"
-					documentation 	
-|This will be a stereotype on a usecase. 
-|In UML it is a stereotype on a collaboration and that does not exist in Rose.
-					
-					stereotype 	"use-case realization"
-					logical_models 	(list unit_reference_list
-					    (object Mechanism @8
-						logical_models 	(list unit_reference_list))
-					    (object Mechanism @9
-						logical_models 	(list unit_reference_list)))
-					logical_presentations 	(list unit_reference_list
-					    (object ClassDiagram "<Use Case Name> -  Realize Dependencies"
-						quid       	"37BC23B801F1"
-						title      	"<Use Case Name> -  Realize Dependencies"
-						documentation 	"This diagram shows the Use Case and the Use Case Realization and the realize dependency between them.  This information is used to connect the use case with the use case realization."
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object ClassDiagram "<Use Case Name> -  Participating Classes"
-						quid       	"37BC23E0036B"
-						title      	"<Use Case Name> -  Participating Classes"
-						documentation 	"This Diagram shows all participating classes in this Use Case Realization"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object InteractionDiagram "<Use Case Name> -  Basic Flow"
-						mechanism_ref 	@8
-						quid       	"35081E3603A2"
-						title      	"<Use Case Name> -  Basic Flow"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list))
-					    (object InteractionDiagram "<Use Case Name> -  <Flow Type>"
-						mechanism_ref 	@9
-						quid       	"3540A0B901AE"
-						title      	"<Use Case Name> -  <Flow Type>"
-						zoom       	100
-						max_height 	28350
-						max_width  	21600
-						origin_x   	0
-						origin_y   	0
-						items      	(list diagram_item_list)))))
-				logical_presentations 	(list unit_reference_list
-				    (object ClassDiagram "Realize Dependency"
-					quid       	"34E39DA90302"
-					title      	"Realize Dependency"
-					documentation 	"This diagram shows the Use Case and the Use Case Realization and the realizes dependency between them."
-					zoom       	100
-					max_height 	28350
-					max_width  	21600
-					origin_x   	0
-					origin_y   	0
-					items      	(list diagram_item_list
-					    (object NoteView @10
-						location   	(704, 144)
-						label      	(object ItemLabel
-						    Parent_View 	@10
-						    location   	(38, 25)
-						    fill_color 	13434879
-						    nlines     	5
-						    max_width  	1296
-						    label      	
-|
-|This diagram shows the Use Case and the Use Case Realization and the realize dependency between them.
-						    )
-						line_color 	3342489
-						fill_color 	13434879
-						width      	1356
-						height     	250)
-					    (object UseCaseView "Use Case View::Use-Case Model::Use Cases::<Use Case Name>::<Use Case Name>" @11
-						location   	(1152, 528)
-						label      	(object ItemLabel
-						    Parent_View 	@11
-						    location   	(1152, 666)
-						    anchor_loc 	1
-						    nlines     	2
-						    max_width  	631
-						    justify    	0
-						    label      	"<Use Case Name>")
-						icon_style 	"Icon"
-						line_color 	3342489
-						fill_color 	13434879
-						quidu      	"34E37FB203D4"
-						autoResize 	TRUE)
-					    (object UseCaseView "Logical View::Design Model::Use-Case Realizations::<Use-Case Name>::<Use-Case Name>" @12
-						location   	(608, 960)
-						label      	(object ItemLabel
-						    Parent_View 	@12
-						    location   	(608, 1148)
-						    anchor_loc 	1
-						    nlines     	2
-						    max_width  	651
-						    justify    	0
-						    label      	"<Use-Case Name>")
-						stereotype 	(object ItemLabel
-						    Parent_View 	@12
-						    location   	(608, 1078)
-						    anchor     	10
-						    anchor_loc 	1
-						    nlines     	1
-						    max_width  	434
-						    justify    	0
-						    label      	"<<use-case realization>>")
-						icon       	"use-case realization"
-						icon_style 	"Icon"
-						line_color 	3342489
-						fill_color 	13434879
-						quidu      	"352F38180276"
-						autoResize 	TRUE)
-					    (object AssociationViewNew "$UNNAMED$0" @13
-						location   	(876, 741)
-						stereotype 	(object SegLabel @14
-						    Parent_View 	@13
-						    location   	(874, 746)
-						    anchor     	10
-						    anchor_loc 	1
-						    nlines     	1
-						    max_width  	450
-						    justify    	0
-						    label      	"<<realize>>"
-						    pctDist    	0.483333
-						    height     	5
-						    orientation 	1)
-						line_color 	3342489
-						quidu      	"35409E9D02A8"
-						roleview_list 	(list RoleViews
-						    (object RoleView "$UNNAMED$1" @15
-							Parent_View 	@13
-							location   	(236, -539)
-							stereotype 	TRUE
-							line_color 	3342489
-							quidu      	"35409E9E0294"
-							client     	@13
-							supplier   	@11
-							line_style 	0)
-						    (object RoleView "$UNNAMED$2" @16
-							Parent_View 	@13
-							location   	(236, -539)
-							stereotype 	TRUE
-							line_color 	3342489
-							quidu      	"35409E9E0295"
-							client     	@13
-							supplier   	@12
-							line_style 	0))))))))
-			logical_presentations 	(list unit_reference_list))
-		    (object Class_Category "Process View"
-			quid       	"35D227B103C0"
-			documentation 	"An architectural view that describes the concurrent aspect of the system: tasks (processes) and their interactions."
-			exportControl 	"Public"
-			logical_models 	(list unit_reference_list
-			    (object Class "<Process Name>"
-				quid       	"35DB3C8302D0"
-				documentation 	"This process provides <enter a description here of what the role of the process in the system is>.  A separate process was chosen for this to be able to <enter the rationale for needing a separate process>."
-				stereotype 	"process")
-			    (object Class "<Thread Name>"
-				quid       	"35DB3CB002BC"
-				documentation 	"This is a sub-process or thread within the <name of process of which this thread is a sub-process> process which handles <enter a description of what this thread does>.  A separate thread was chosen for this to be able to <enter the rationale for creating a separate thread>."
-				stereotype 	"thread")
-			    (object Association "$UNNAMED$3"
-				quid       	"35DB3E72017C"
-				roles      	(list role_list
-				    (object Role "$UNNAMED$4"
-					quid       	"35DB3E73005A"
-					supplier   	"Logical View::Design Model::Process View::<Process Name>"
-					quidu      	"35DB3C8302D0"
-					is_navigable 	TRUE
-					is_aggregate 	TRUE)
-				    (object Role "$UNNAMED$5"
-					quid       	"35DB3E730096"
-					supplier   	"Logical View::Design Model::Process View::<Thread Name>"
-					quidu      	"35DB3CB002BC"
-					Containment 	"By Value"
-					is_navigable 	TRUE))))
-			logical_presentations 	(list unit_reference_list
-			    (object ClassDiagram "Process View"
-				quid       	"35DB3C2A02B2"
-				title      	"Process View"
-				documentation 	"This diagram illustrates the composition of processes and threads, and the mapping of classes onto those processes and threads."
-				zoom       	100
-				max_height 	28350
-				max_width  	21600
-				origin_x   	0
-				origin_y   	0
-				items      	(list diagram_item_list
-				    (object ClassView "Class" "Logical View::Design Model::Process View::<Process Name>" @17
-					ShowCompartmentStereotypes 	TRUE
-					IncludeAttribute 	TRUE
-					IncludeOperation 	TRUE
-					location   	(288, 464)
-					label      	(object ItemLabel
-					    Parent_View 	@17
-					    location   	(122, 436)
-					    fill_color 	13434879
-					    nlines     	1
-					    max_width  	332
-					    justify    	0
-					    label      	"<Process Name>")
-					stereotype 	(object ItemLabel
-					    Parent_View 	@17
-					    location   	(122, 389)
-					    fill_color 	13434879
-					    anchor     	10
-					    nlines     	1
-					    max_width  	332
-					    justify    	0
-					    label      	"<<process>>")
-					icon_style 	"Icon"
-					line_color 	3342489
-					fill_color 	13434879
-					quidu      	"35DB3C8302D0"
-					width      	350
-					height     	172
-					annotation 	8
-					autoResize 	TRUE)
-				    (object ClassView "Class" "Logical View::Design Model::Process View::<Thread Name>" @18
-					ShowCompartmentStereotypes 	TRUE
-					IncludeAttribute 	TRUE
-					IncludeOperation 	TRUE
-					location   	(896, 464)
-					label      	(object ItemLabel
-					    Parent_View 	@18
-					    location   	(740, 436)
-					    fill_color 	13434879
-					    nlines     	1
-					    max_width  	312
-					    justify    	0
-					    label      	"<Thread Name>")
-					stereotype 	(object ItemLabel
-					    Parent_View 	@18
-					    location   	(740, 389)
-					    fill_color 	13434879
-					    anchor     	10
-					    nlines     	1
-					    max_width  	312
-					    justify    	0
-					    label      	"<<thread>>")
-					icon_style 	"Icon"
-					line_color 	3342489
-					fill_color 	13434879
-					quidu      	"35DB3CB002BC"
-					width      	330
-					height     	172
-					annotation 	8
-					autoResize 	TRUE)
-				    (object AssociationViewNew "$UNNAMED$3" @19
-					location   	(596, 464)
-					stereotype 	TRUE
-					line_color 	3342489
-					quidu      	"35DB3E72017C"
-					roleview_list 	(list RoleViews
-					    (object RoleView "$UNNAMED$4" @20
-						Parent_View 	@19
-						location   	(-300, 0)
-						stereotype 	TRUE
-						line_color 	3342489
-						quidu      	"35DB3E73005A"
-						client     	@19
-						supplier   	@17
-						line_style 	0)
-					    (object RoleView "$UNNAMED$5" @21
-						Parent_View 	@19
-						location   	(-300, 0)
-						stereotype 	TRUE
-						line_color 	3342489
-						quidu      	"35DB3E730096"
-						client     	@19
-						supplier   	@18
-						line_style 	0))))))))
-		logical_presentations 	(list unit_reference_list
-		    (object ClassDiagram "Architecturally Significant Model Elements"
-			quid       	"34E36BDE02C6"
-			title      	"Architecturally Significant Model Elements"
-			documentation 	"Elements of the Design Model which are considered architecturally significant should be presented in this diagram.  This diagram will be presented in the document generated using the SoDA Software Architecture Document."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @22
-				location   	(672, 304)
-				label      	(object ItemLabel
-				    Parent_View 	@22
-				    location   	(28, 19)
-				    fill_color 	13434879
-				    nlines     	13
-				    max_width  	1253
-				    label      	
-|
-|This diagram is just produced for architectural significant packages.
-|
-|This diagram shows the Architectural Significant Classes and Packages in this package. Only significant  operations and attributes are shown on the classes in this diagram.
-|
-|See Rational Unified Process:
-|Activity: Architectural Design
-|Step:  Include Architecturally Significant Model Elements in the Logical View 
-|
-|This will be a part of  the  "Software Architecture Document" :
-|- "Logical View" 
-|-     "Architecturally Significant Model Elements"
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1313
-				height     	582)
-			    (object NoteView @23
-				location   	(1696, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@23
-				    location   	(1358, 29)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275)))
-		    (object ClassDiagram "Architecture Overview - Package and Subsystem Layering"
-			quid       	"354A9751015E"
-			title      	"Architecture Overview - Package and Subsystem Layering"
-			documentation 	
-|This diagram depicts the organization of the design model into layers. This diagram will be presented in the document generated using the SoDA Software Architecture Document.  
-|
-|See Rational Unified Process:
-|Activity: Architectural Analysis
-|Step: Define the High-Level Organization of Subsystems
-|
-|Activity: Incorporate Existing Design Elements
-|Step: Update the Organization of the Design Model
-			
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @24
-				location   	(576, 256)
-				label      	(object ItemLabel
-				    Parent_View 	@24
-				    location   	(44, 31)
-				    fill_color 	13434879
-				    nlines     	9
-				    max_width  	1028
-				    label      	
-|This diagram shows the design model layers.
-|
-|See Rational Unified Process:
-|Activity: Architectural Analysis
-|Step: Define the High-Level Organization of Subsystems
-|
-|Activity: Architectural Design
-|Step: Define the Low-level Organization of Subsystems
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1088
-				height     	463)
-			    (object NoteView @25
-				location   	(1520, 176)
-				label      	(object ItemLabel
-				    Parent_View 	@25
-				    location   	(1182, 45)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	640
-				    label      	
-|Created/modified by: <name>
-|Date: <creation/modification date>
-|
-|Approved by: <name>
-|Date: <approval date>
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	700
-				height     	275))))))
-	logical_presentations 	(list unit_reference_list
-	    (object ClassDiagram "Welcome"
-		quid       	"3512226B0028"
-		title      	"Welcome"
-		documentation 	
-|Welcome to the Rational Unified Process Frame Work
-|
-|Purpose of the FrameWork:
-|a) provide a good structure for a Rose model
-|b) provide a style guide with naming conventions/suggestions
-|c) identify a minimal set of diagrams to produce
-|d) relate activities in RUP to Rose diagrams
-|e) provide a basis for sophisticated SoDA reports. For instance based on this structure most of the Rose parts of the "Software Architecture Document" are generated from SoDA.
-|
-		
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object NoteView @26
-			location   	(768, 384)
-			label      	(object ItemLabel
-			    Parent_View 	@26
-			    location   	(121, 96)
-			    fill_color 	13434879
-			    nlines     	14
-			    max_width  	1259
-			    label      	
-|Welcome to the Rational Unified Process Rose Model Framework
-|
-|Purpose of the Framework:
-|a) provide a good structure for a Rose model
-|b) provide a style guide with naming conventions/suggestions
-|c) identify a minimal set of diagrams to produce
-|d) relate activities in RUP to Rose diagrams
-|e) provide a basis for sophisticated SoDA reports. For instance based on this structure most of the Rose parts of the "Software Architecture Document" are generated from SoDA.
-			    )
-			line_color 	3342489
-			fill_color 	13434879
-			width      	1319
-			height     	588)
-		    (object CategoryView "Logical View::Analysis Model::TZ Compiler" @27
-			location   	(1136, 1008)
-			label      	(object ItemLabel
-			    Parent_View 	@27
-			    location   	(951, 924)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"TZ Compiler")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40E569BC024F"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::LTClasses" @28
-			location   	(432, 1008)
-			label      	(object ItemLabel
-			    Parent_View 	@28
-			    location   	(247, 924)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"LTClasses")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40A89DC203B0"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Time Zone Database Management" @29
-			location   	(1872, 1040)
-			label      	(object ItemLabel
-			    Parent_View 	@29
-			    location   	(1638, 956)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	468
-			    justify    	0
-			    label      	"Time Zone Database Management")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1E4A6003A"
-			width      	480
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Business Object Model" @30
-			location   	(512, 1408)
-			label      	(object ItemLabel
-			    Parent_View 	@30
-			    location   	(327, 1324)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"Business Object Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B678080064"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::Local Time Conversion" @31
-			location   	(1728, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@31
-			    location   	(1543, 1308)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"Local Time Conversion")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1D43200B7"
-			width      	382
-			height     	180)
-		    (object CategoryView "Logical View::Analysis Model::System Time Management" @32
-			location   	(1040, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@32
-			    location   	(855, 1308)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	370
-			    justify    	0
-			    label      	"System Time Management")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40B1D49203C5"
-			width      	382
-			height     	180)))))
-    root_subsystem 	(object SubSystem "Component View"
-	quid       	"34DBB4830143"
-	documentation 	
-|In Rational Unified Process the  "Component View in Rose" is used to organize the implemetation model. 
-|
-|The Implementaition View in Rational Unified Process
-|
-|
-	
-	physical_models 	(list unit_reference_list
-	    (object SubSystem "Implementation Model"
-		quid       	"35B67C9A0348"
-		documentation 	
-|The Implementation Model in Rational Unified Process is a collection of components, and the implementation subsystems that contain them.
-|
-|An architectural view that describes one or several system configurations; the mapping of software components (tasks, modules) to the computing nodes in these configurations.
-|
-|Defines, executables, dll's, files, subsystems, compilation order etc.
-|
-|Rational Unified Process:
-|Activity: Define the Organization of Subsystems
-|
-|These diagram will be presented in the  Implementation  View section in the document generated using the SoDA Software Architecture Document.
-|
-|It is recommended that, in most cases, the mapping should be
-|1:1 between design and implementation, that is, for each package in design there is one subsystem in the implementation model.
-|
-		
-		physical_models 	(list unit_reference_list)
-		physical_presentations 	(list unit_reference_list
-		    (object Module_Diagram "Implementation Model Structure"
-			quid       	"34DBB487006E"
-			title      	"Implementation Model Structure"
-			documentation 	"This diagram presents the organization of the Implementation Model."
-			zoom       	100
-			max_height 	28350
-			max_width  	21600
-			origin_x   	0
-			origin_y   	0
-			items      	(list diagram_item_list
-			    (object NoteView @33
-				location   	(624, 160)
-				label      	(object ItemLabel
-				    Parent_View 	@33
-				    location   	(21, 26)
-				    fill_color 	13434879
-				    nlines     	5
-				    max_width  	1170
-				    label      	
-|
-|RationalUnified Process:
-|Activity: Structure the implementation model
-|Step: Create the Initial Implementation Model Structure
-				    )
-				line_color 	3342489
-				fill_color 	13434879
-				width      	1230
-				height     	281)))))
-	    (object SubSystem "Components Analysis"
-		is_unit    	TRUE
-		is_loaded  	FALSE
-		file_name  	"M:\\DST\\analysis\\Components.sub"
-		quid       	"40D969B300E0"))
-	physical_presentations 	(list unit_reference_list
-	    (object Module_Diagram "Main"
-		quid       	"35C6339B029E"
-		title      	"Main"
-		documentation 	"This diagram, required by Rose, simply provides a way of navigating to the Implementation Model."
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object SubSysView "Component View::Implementation Model" @34
-			location   	(736, 800)
-			label      	(object ItemLabel
-			    Parent_View 	@34
-			    location   	(552, 713)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	368
-			    justify    	0
-			    label      	"Implementation Model")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"35B67C9A0348"
-			width      	381
-			height     	187)
-		    (object SubSysView "Component View::Components Analysis" @35
-			location   	(1408, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@35
-			    location   	(1264, 1323)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	288
-			    justify    	0
-			    label      	"Components Analysis")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"40D969B300E0"
-			width      	300
-			height     	150)))))
-    process_structure 	(object Processes
-	quid       	"34DBB4830144"
-	ProcsNDevs 	(list
-	    (object Processor "<processor name>"
-		quid       	"34DBBD4300B4"
-		documentation 	"This node provides <enter a short description here of the functionality and capability of the node>."
-		connections 	(list connection_list
-		    (object Connection_Relationship
-			quid       	"34DBBD4B008C"
-			supplier   	"<device name>"
-			quidu      	"34DBBD47019A"
-			supplier_is_device 	TRUE))
-		characteristics 	""
-		scheduling 	"Preemptive"
-		processes  	(list processes
-		    (object Process "<process name>"
-			quid       	"35DB411001D6"
-			documentation 	"This process corresponds to the process with the same name in the Logical View::Process Model."
-			stereotype 	"process"
-			priority   	"")
-		    (object Process "<thread name>"
-			quid       	"35DB41720348"
-			documentation 	"This process corresponds to the thread with the same name in the Logical View::Process Model."
-			stereotype 	"thread"
-			priority   	"")))
-	    (object Device "<device name>"
-		quid       	"34DBBD47019A"
-		documentation 	"This device provides <enter a short description of the capability the device provides> for the system."
-		characteristics 	"")
-	    (object Process_Diagram "Deployment View"
-		quid       	"34DBB4830146"
-		title      	"Deployment View"
-		documentation 	
-|The Deployment View in Rational Unified Process
-|
-|Defines the typical physical network configurations, including those typically used by end users, as well as special configurations used for development and test.
-|
-|See Rational Unified Process:
-|Activity: Describe Distribution
-|
-|This diagram will be a part of  the SoDA template-generated Software Architecture Document under the "Deployment  View" .
-		
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object ProcessorView "<processor name>" @36
-			location   	(512, 1056)
-			label      	(object ItemLabel
-			    Parent_View 	@36
-			    location   	(276, 900)
-			    nlines     	2
-			    max_width  	400
-			    justify    	0
-			    label      	"<processor name>")
-			icon_style 	"Label"
-			quidu      	"34DBBD4300B4"
-			width      	475
-			height     	381
-			annotation 	3)
-		    (object DeviceView "<device name>" @37
-			location   	(1040, 1056)
-			label      	(object ItemLabel
-			    Parent_View 	@37
-			    location   	(867, 950)
-			    nlines     	2
-			    max_width  	275
-			    justify    	0
-			    label      	"<device name>")
-			icon_style 	"Icon"
-			quidu      	"34DBBD47019A"
-			width      	350
-			height     	282
-			annotation 	0)
-		    (object ConnectionView "" @38
-			stereotype 	TRUE
-			quidu      	"34DBBD4B008C"
-			client     	@36
-			supplier   	@37
-			line_style 	0)
-		    (object NoteView @39
-			location   	(816, 304)
-			label      	(object ItemLabel
-			    Parent_View 	@39
-			    location   	(38, 29)
-			    fill_color 	13434879
-			    nlines     	11
-			    max_width  	1521
-			    label      	
-|This Diagram defines the typical physical network configurations, including those typically used by end users, as well as special configurations used for development and test.
-|
-|· Allocate processes to the various nodes. Allocation takes into account the capacity of the nodes (in terms of
-|both memory and processing), bandwidth of the communication medium (bus, LANs, WANs), and the
-|availability of the hardware and communication links, rerouting, and so on.
-|
-|See, Rational Unified Process:
-|Activity: Describe Distribution
-			    )
-			line_color 	3342489
-			fill_color 	13434879
-			width      	1581
-			height     	563)))))
-    properties 	(object Properties
-	attributes 	(list Attribute_Set
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"propertyId"
-		value      	"783606378")
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CreatableSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Private"
-				value      	221)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"PublicNotCreatable"
-				value      	213)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"SingleUse"
-				value      	214)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalSingleUse"
-				value      	215)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"MultiUse"
-				value      	219)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalMultiUse"
-				value      	220)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionBase"
-			value      	("BaseSet" 222))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionExplicit"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OptionCompare"
-			value      	("CompareSet" 202))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Creatable"
-			value      	("CreatableSet" 221))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateInitialization"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateTermination"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CollectionClass"
-			value      	"Collection")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"CompareSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"(none)"
-				value      	202)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Binary"
-				value      	203)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Text"
-				value      	204)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateModel"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"InstancingSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"Private"
-				value      	221)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"PublicNotCreatable"
-				value      	213)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"SingleUse"
-				value      	214)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalSingleUse"
-				value      	215)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"MultiUse"
-				value      	219)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"GlobalMultiUse"
-				value      	220)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"BaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"(none)"
-				value      	222)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"0"
-				value      	223)
-			    (object Attribute
-				tool       	"Visual Basic"
-				name       	"1"
-				value      	224)))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Instancing"
-			value      	("InstancingSet" 221))))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"OperationName"
-			value      	"$operation")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"LibraryName"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"AliasName"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"IsStatic"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"EntryCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ExitCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ReplaceExistingBody"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DefaultBody"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"IsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"New"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"WithEvents"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Subscript"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"NameIfUnlabeled"
-			value      	"the$supplier")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateGetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateSetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateLetOperation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"New"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"WithEvents"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Subscript"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"NameIfUnlabeled"
-			value      	"the$supplier")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateGetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateSetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"GenerateLetOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"FullName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Inherit"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ImplementsDelegation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"FullName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ProjectFile"
-			value      	"")
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"UpdateModel"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ImportReferences"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"QuickImport"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"VisualStudio"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Repository"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"SCC"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"propertyId"
-		value      	"360000002")
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"PrimaryKeyColumnName"
-			value      	"_ID")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5,0)")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"SchemaNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"SchemaNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TableNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TypeNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TypeNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ViewNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ViewNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"VarrayNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"VarrayNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NestedTableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NestedTableNameSuffix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ObjectTableNamePrefix"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"ObjectTableNameSuffix"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsSchema"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OID"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"WhereClause"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CheckConstraint"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypeLength"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypePrecision"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionTypeScale"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CollectionOfREFS"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"MethodKind"
-			value      	("MethodKindSet" 1903))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OverloadID"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsReadNoDataState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsReadNoProcessState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsWriteNoDataState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsWriteNoProcessState"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsSelfish"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerType"
-			value      	("TriggerTypeSet" 1801))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerEvent"
-			value      	("TriggerEventSet" 1601))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerText"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerReferencingNames"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerForEach"
-			value      	("TriggerForEachSet" 1701))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerWhenClause"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"MethodKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"MapMethod"
-				value      	1901)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"OrderMethod"
-				value      	1902)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Function"
-				value      	1903)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Procedure"
-				value      	1904)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Operator"
-				value      	1905)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Constructor"
-				value      	1906)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Destructor"
-				value      	1907)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Trigger"
-				value      	1908)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"Calculated"
-				value      	1909)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"AFTER"
-				value      	1801)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"BEFORE"
-				value      	1802)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSTEAD OF"
-				value      	1803)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerForEachSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"ROW"
-				value      	1701)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"STATEMENT"
-				value      	1702)))
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"TriggerEventSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT"
-				value      	1601)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"UPDATE"
-				value      	1602)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"DELETE"
-				value      	1603)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR UPDATE"
-				value      	1604)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR DELETE"
-				value      	1605)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"UPDATE OR DELETE"
-				value      	1606)
-			    (object Attribute
-				tool       	"Oracle8"
-				name       	"INSERT OR UPDATE OR DELETE"
-				value      	1607)))))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"OrderNumber"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"NullsAllowed"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Precision"
-			value      	"2")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"Scale"
-			value      	"6")
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsIndex"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"IsPrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Oracle8"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"Oracle8"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"cg"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PrecompiledHeader"
-			value      	"stdafx.h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ImplementationType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ClassKey"
-			value      	"class")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"PutBodiesInSpec"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultConstructor"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDefaultConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExplicitDefaultConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateCopyConstructor"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyConstructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineCopyConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExplicitCopyConstructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDestructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DestructorKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDestructor"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssignmentOperation"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssignmentKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssignmentOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEqualityOperations"
-			value      	("GenerateSet" 206))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"EqualityKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineEqualityOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"RelationalKind"
-			value      	("FriendKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineRelationalOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StorageMgmtVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStorageMgmtOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"SubscriptResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSubscriptOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DereferenceResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineDereferenceOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionKind"
-			value      	("ThreeKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IndirectionResultType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineIndirectionOperation"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StreamVisibility"
-			value      	("VisibilitySet" 45))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineStreamOperations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ThreeKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"KindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FriendKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareAndDefine"
-				value      	199)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DeclareOnly"
-				value      	205)
-			    (object Attribute
-				tool       	"cg"
-				name       	"DoNotDeclare"
-				value      	206)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"VisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDefaultSpecifier"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DefaultSpecifier"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExtensionlessFileName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeFormat"
-			value      	(value Text 
-|// $package
-|#include "$file"
-|
-			))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludePrecompiledHeader"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeOrder"
-			value      	"AMIR")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"TypesDefined"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeClosure"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"cg"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExtensionlessFileName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeFormat"
-			value      	(value Text 
-|// $package
-|#include "$file"
-|
-			))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludePrecompiledHeader"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeOrder"
-			value      	"AMIR")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyle"
-			value      	("InliningStyleSet" 207))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InliningStyleSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"InClassDeclaration"
-				value      	208)
-			    (object Attribute
-				tool       	"cg"
-				name       	"FollowingClassDeclaration"
-				value      	207)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"TypesDefined"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"IncludeClosure"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKind"
-			value      	("OperationKindSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationKindSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsExplicit"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Inline"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"EntryCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ExitCode"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"BodyAnnotations"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OperationIsOneWay"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Raises"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CCRegion"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAbstractBody"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Ordered"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$relationship")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SelectorType"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedHasRelType"
-			value      	("HasRelTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"HasRelTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Association"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Inherit"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"InstanceArguments"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"NameIfUnlabeled"
-			value      	"the_$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"InitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerGet"
-			value      	"$data.get($keys)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"ContainerSet"
-			value      	"$data.set($keys,$value)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedContainer"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassContainer"
-			value      	"$supplier *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassInitialValue"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetSetByReference"
-			value      	("QualifiedGetSetByReferenceSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetSetByReferenceSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_GetSetByReference"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedGetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateQualifiedSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineQualifiedSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberName"
-			value      	"$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtRelationshipVisibility"
-				value      	210)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassDataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetName"
-			value      	"get_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassGetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateAssocClassSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetName"
-			value      	"set_$target")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassSetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineAssocClassSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocClassForwardReferenceOnly"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"cg"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberName"
-			value      	"$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibility"
-			value      	("DataMemberVisibilitySet" 14))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberVisibilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Public"
-				value      	45)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Protected"
-				value      	44)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Private"
-				value      	43)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Implementation"
-				value      	14)
-			    (object Attribute
-				tool       	"cg"
-				name       	"AtAttributeVisibility"
-				value      	211)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutability"
-			value      	("DataMemberMutabilitySet" 0))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberMutabilitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unrestricted"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Mutable"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Const"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberIsVolatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"DataMemberFieldSize"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateGetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateSetOperation"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetName"
-			value      	"get_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetName"
-			value      	"set_$attribute")
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKinds"
-			value      	("GetSetKindsSet" 200))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetKindsSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"Common"
-				value      	200)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Virtual"
-				value      	201)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Abstract"
-				value      	202)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Static"
-				value      	203)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Friend"
-				value      	204)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetIsConst"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConst"
-			value      	("GetResultIsConstSet" 2))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetResultIsConstSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"False"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"True"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Same_As_Function"
-				value      	2)))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GetSetByReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineGet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"SetReturnsValue"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"InlineSet"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CCRegion"
-			value      	"")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"ForwardReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"BodyReferenceOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Subsystem"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"DirectoryIsOnSearchList"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"PrecompiledHeader"
-			value      	"stdafx.h")))
-	    (object Attribute
-		tool       	"cg"
-		name       	"default__Category"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"IsNamespace"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeName"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"Indent"
-			value      	2)
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegions"
-			value      	("GenerateEmptyRegionSet" 3))
-		    (object Attribute
-			tool       	"cg"
-			name       	"GenerateEmptyRegionSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"cg"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Preserved"
-				value      	1)
-			    (object Attribute
-				tool       	"cg"
-				name       	"Unpreserved"
-				value      	2)
-			    (object Attribute
-				tool       	"cg"
-				name       	"All"
-				value      	3)))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Version"
-			value      	"5.0")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCClassTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCClassTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Interface_Part"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Connection_Part"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Class_Factory"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CObjectFunctionality"
-			value      	("CObjectFunctionalitySet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CObjectFunctionalitySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dynamic"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dyncreate"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Serial"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOverrideGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDataGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DATA_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateFieldGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_FIELD_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMessageGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMessageMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MESSAGE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEFactory"
-			value      	("OLEFactorySet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEFactorySet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"None"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Built_in"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Simple"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Licensed"
-				value      	3)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEName"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEClassID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOLECtlType"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLECtlType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateOLETypeLib"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibMajor"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLETypeLibMinor"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GeneratePropPageIDs"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLEPropPageIDs"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDispatchMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockProperties"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockFunctions"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DispatchDefValue"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateDispIdEnum"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISP_ID_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInterfaceMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"INTERFACE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"InitInterface"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateEventMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockEvents"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateEventSinkMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PropNotifySinks"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateConnectionMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CONNECTION_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"ConnectionPointIID"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"InheritanceType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"OLECommands"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MFCDeclares"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"ATL_Declares"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateCOMMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"COM_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateConnectionPointMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CONNECTION_POINT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateMsgMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GeneratePropertyMap"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PROPERTY_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MFCImplements"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCOperationTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCOperationTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Virtual_Override"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Message_Handler"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dispatch_Handler"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Event_Firing_Function"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Event_Sink_Handler"
-				value      	5)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Std_OLE_Method"
-				value      	6)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Command_Parser"
-				value      	7)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Get_Function"
-				value      	8)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Set_Function"
-				value      	9)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Property_Notify_Function"
-				value      	10)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Macro_Generated_Function"
-				value      	11)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_MSG_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MESSAGE_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENT_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"EVENTSINK_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"BodyImage"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"Type"
-			value      	("MSVCAttributeTypeSet" 0))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"MSVCAttributeTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Normal"
-				value      	0)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Member_Property"
-				value      	1)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Get_Set_Property"
-				value      	2)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Dialog_Data"
-				value      	3)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Field_Data"
-				value      	4)
-			    (object Attribute
-				tool       	"MSVC"
-				name       	"Stock_Property"
-				value      	5)))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DISPATCH_MAP_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"DeclSpec"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"PointerBase"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"CallType"
-			value      	"")
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"StockPropertyImplementation"
-			value      	"")))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateIncludesGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_INCLUDES_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInsertLocation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"MSVC"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateIncludesGroup"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"AFX_INCLUDES_Entries"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"MSVC"
-			name       	"GenerateInsertLocation"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"DDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBase"
-			value      	("DataBaseSet" 800))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"DDL"
-				name       	"ANSI"
-				value      	800)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Oracle"
-				value      	801)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"SQLServer"
-				value      	802)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Sybase"
-				value      	803)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Watcom"
-				value      	804)))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnName"
-			value      	"Id")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5)")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ViewName"
-			value      	"V_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"TableName"
-			value      	"T_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"InheritSuffix"
-			value      	"_V")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"BaseViews"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ColumnType"
-			value      	"VARCHAR")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"NullsOK"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Unique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"framework"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"IDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"StopOnError"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GeneratePreserveRegions"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ImplementationType"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDefaultSpecifier"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DefaultSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLElement"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLSpecificationType"
-			value      	("IDLSpecSet" 22))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IDLSpecSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Interface"
-				value      	22)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Typedef"
-				value      	54)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Enumeration"
-				value      	8)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Const"
-				value      	71)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Exception"
-				value      	61)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Struct"
-				value      	51)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Union"
-				value      	81)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateIDLModule"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"FileName"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IncludeBySimpleName"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"OperationIsOneWay"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Raises"
-			value      	"")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsConst"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"ConstValue"
-			value      	"")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Has"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"BoundedHasRelType"
-			value      	("HasRelTypeSet" 47))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"HasRelTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"NameIfUnlabeled"
-			value      	"the_$supplier")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"DataMemberName"
-			value      	"$relationship")
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"IDL"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"IDL"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"IDL"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"default__Subsystem"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"IDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"IDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Java"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"Java"
-			name       	"UsePrefixes"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"InstanceVariablePrefix"
-			value      	"m_")
-		    (object Attribute
-			tool       	"Java"
-			name       	"ClassVariablePrefix"
-			value      	"s_")
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultAttributeDataType"
-			value      	"int")
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultOperationReturnType"
-			value      	"void")
-		    (object Attribute
-			tool       	"Java"
-			name       	"Editor"
-			value      	("EditorType" 100))
-		    (object Attribute
-			tool       	"Java"
-			name       	"VM"
-			value      	("VMType" 200))
-		    (object Attribute
-			tool       	"Java"
-			name       	"ClassPath"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"EditorType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"BuiltIn"
-				value      	100)
-			    (object Attribute
-				tool       	"Java"
-				name       	"WindowsShell"
-				value      	101)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"VMType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Sun"
-				value      	200)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Microsoft"
-				value      	201)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GlobalImports"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"OpenBraceClassStyle"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"UseTabs"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"UseSpaces"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"SpacingItems"
-			value      	3)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CommentLength"
-			value      	2)
-		    (object Attribute
-			tool       	"Java"
-			name       	"RoseDefaultCommentStyle"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"AsteriskCommentStyle"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavaCommentStyle"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocAuthor"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocDeprecated"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocException"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocParam"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocReturn"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSee"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerial"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerialdata"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSerialfield"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocSince"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"JavadocLink"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDefaultConstructor"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"ConstructorIs"
-			value      	("Ctor_Set" 62))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Ctor_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"public"
-				value      	62)
-			    (object Attribute
-				tool       	"Java"
-				name       	"protected"
-				value      	63)
-			    (object Attribute
-				tool       	"Java"
-				name       	"private"
-				value      	64)
-			    (object Attribute
-				tool       	"Java"
-				name       	"package"
-				value      	65)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateFinalizer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateStaticInitializer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateInstanceInitializer"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Static"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CmIdentification"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"AdditionalImports"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"CmIdentification"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"AdditionalImports"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"Abstract"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Static"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Native"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Synchronized"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"DefaultBody"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"Java"
-			name       	"ReplaceExistingBody"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Transient"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Volatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"PropertyType"
-			value      	("BeanProperty_Set" 71))
-		    (object Attribute
-			tool       	"Java"
-			name       	"BeanProperty_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Not A Property"
-				value      	71)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Simple"
-				value      	72)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Bound"
-				value      	73)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Constrained"
-				value      	74)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"IndividualChangeMgt"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write"
-			value      	("Read/Write_Set" 81))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read & Write"
-				value      	81)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read Only"
-				value      	82)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Write Only"
-				value      	83)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateFullyQualifiedTypes"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"Java"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Java"
-			name       	"GenerateDataMember"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"ContainerClass"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"InitialValue"
-			value      	"")
-		    (object Attribute
-			tool       	"Java"
-			name       	"Final"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Transient"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Volatile"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"PropertyType"
-			value      	("BeanProperty_Set" 71))
-		    (object Attribute
-			tool       	"Java"
-			name       	"BeanProperty_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Not A Property"
-				value      	71)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Simple"
-				value      	72)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Bound"
-				value      	73)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Constrained"
-				value      	74)))
-		    (object Attribute
-			tool       	"Java"
-			name       	"IndividualChangeMgt"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write"
-			value      	("Read/Write_Set" 81))
-		    (object Attribute
-			tool       	"Java"
-			name       	"Read/Write_Set"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read & Write"
-				value      	81)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Read Only"
-				value      	82)
-			    (object Attribute
-				tool       	"Java"
-				name       	"Write Only"
-				value      	83)))))
-	    (object Attribute
-		tool       	"Java"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Objectory41"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"TypeLibImporter"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"ROBE"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Editor"
-			value      	("EditorType" 100))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IncludePath"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"StopOnError"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"EditorType"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"BuiltIn"
-				value      	100)
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"WindowsShell"
-				value      	101)))))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ConstValue"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ImplementationType"
-			value      	"")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Module-Body"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AdditionalIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CmIdentification"
-			value      	(value Text "  %X% %Q% %Z% %W%"))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CopyrightNotice"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"InclusionProtectionSymbol"
-			value      	"AUTO GENERATE")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Context"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"OperationIsOneWay"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Order"
-			value      	"")))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"ArrayDimensions"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"CaseSpecifier"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"GenerateForwardReference"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"IsReadOnly"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"Order"
-			value      	"")
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"BoundedRoleType"
-			value      	("AssocTypeSet" 47))
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"AssocTypeSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"Array"
-				value      	24)
-			    (object Attribute
-				tool       	"CORBA"
-				name       	"Sequence"
-				value      	47)))))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"default__Uses"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"CORBA"
-			name       	"GenerateForwardReference"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"CORBA"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rational Unified Process"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Web Publisher"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"SoDA"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"COM"
-		name       	"propertyId"
-		value      	"783606378")
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"TypeKinds"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"COM"
-				name       	"enum"
-				value      	100)
-			    (object Attribute
-				tool       	"COM"
-				name       	"record"
-				value      	101)
-			    (object Attribute
-				tool       	"COM"
-				name       	"module"
-				value      	102)
-			    (object Attribute
-				tool       	"COM"
-				name       	"interface"
-				value      	103)
-			    (object Attribute
-				tool       	"COM"
-				name       	"dispinterface"
-				value      	104)
-			    (object Attribute
-				tool       	"COM"
-				name       	"coclass"
-				value      	105)
-			    (object Attribute
-				tool       	"COM"
-				name       	"alias"
-				value      	106)
-			    (object Attribute
-				tool       	"COM"
-				name       	"union"
-				value      	107)
-			    (object Attribute
-				tool       	"COM"
-				name       	"max"
-				value      	108)
-			    (object Attribute
-				tool       	"COM"
-				name       	"(none)"
-				value      	109)))
-		    (object Attribute
-			tool       	"COM"
-			name       	"kind"
-			value      	("TypeKinds" 105))
-		    (object Attribute
-			tool       	"COM"
-			name       	"uuid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"version"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpcontext"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"dllname"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"alias"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"COM"
-			name       	"id"
-			value      	"")))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"filename"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"library"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"imports"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"uuid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"version"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpfile"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpcontext"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"lcid"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Version Control"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Data Access"
-			name       	"project"
-			value      	" ")))
-	    (object Attribute
-		tool       	"Data Access"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"RequisitePro"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler2.1__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"$ROSECPP_SOURCE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue(sizeof($targetClass),$limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference($limit)")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue(sizeof($targetClass))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference(sizeof($qualtype), sizeof($qualcont))")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"128vx_b")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)))
-	    (object Attribute
-		tool       	"cg"
-		name       	"compiler3.0__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerAnnotations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowGenerateOverNewerVersion"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileExtension"
-			value      	"h")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileBackupExtension"
-			value      	"h~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"HeaderFileTemporaryExtension"
-			value      	"h#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileExtension"
-			value      	"cpp")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileBackupExtension"
-			value      	"cp~")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CodeFileTemporaryExtension"
-			value      	"cp#")
-		    (object Attribute
-			tool       	"cg"
-			name       	"CreateMissingDirectories"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"StopOnError"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"ErrorLimit"
-			value      	30)
-		    (object Attribute
-			tool       	"cg"
-			name       	"Directory"
-			value      	"$ROSECPP_SOURCE")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BooleanType"
-			value      	"int")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowTemplates"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowExplicitInstantiations"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"AllowProtectedInheritance"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByValueContainer"
-			value      	"$targetClass")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OneByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByValueContainer"
-			value      	"OptionalByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"OptionalByReferenceContainer"
-			value      	"$targetClass *")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByValueContainer"
-			value      	"$targetClass[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedFixedByReferenceContainer"
-			value      	"$targetClass *[$limit]")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByValueContainer"
-			value      	"BoundedListByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByValueContainer"
-			value      	"BoundedSetByValue<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"BoundedByReferenceContainer"
-			value      	"BoundedListByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedBoundedByReferenceContainer"
-			value      	"BoundedSetByReference<$targetClass,$limit>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByValueContainer"
-			value      	"UnboundedListByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByValueContainer"
-			value      	"UnboundedSetByValue<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnboundedByReferenceContainer"
-			value      	"UnboundedListByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedUnboundedByReferenceContainer"
-			value      	"UnboundedSetByReference<$targetClass>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByValueContainer"
-			value      	"AssociationByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByValueContainer"
-			value      	"DictionaryByValue<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"QualifiedByReferenceContainer"
-			value      	"AssociationByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"UnorderedQualifiedByReferenceContainer"
-			value      	"DictionaryByReference<$qualtype, $qualcont>")
-		    (object Attribute
-			tool       	"cg"
-			name       	"PathSeparator"
-			value      	"")
-		    (object Attribute
-			tool       	"cg"
-			name       	"FileNameFormat"
-			value      	"128vx_b")
-		    (object Attribute
-			tool       	"cg"
-			name       	"AlwaysKeepOrphanedCode"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"UseMSVC"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"cg"
-			name       	"CommentWidth"
-			value      	60)))
-	    (object Attribute
-		tool       	"Rose Model Integrator"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Param"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")))
-	    (object Attribute
-		tool       	"Visual Basic"
-		name       	"default__Param"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ByVal"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ByRef"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"Optional"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"Visual Basic"
-			name       	"ParamArray"
-			value      	FALSE)))
-	    (object Attribute
-		tool       	"COM"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"COM"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"COM"
-			name       	"id"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"helpstring"
-			value      	"")
-		    (object Attribute
-			tool       	"COM"
-			name       	"attributes"
-			value      	"")))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UpdateATL"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"SmartPointersOnAssoc"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"GenerateImports"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"PutImportsIn"
-			value      	"stdafx.h")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"FullPathInImports"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UseImportAttributes"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ImportAttributes"
-			value      	"no_namespace named_guids")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ImportProjTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DefaultTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"TypeLibLocation"
-			value      	"")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CompileProjTypeLib"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"RvcPtyVersion"
-			value      	"1.0")
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ModelIDStyle"
-			value      	2)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DocStyle"
-			value      	1)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"GenerateIncludes"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ApplyPattern"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CreateBackupFiles"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"SupportCodeName"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DocRevEngineer"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"CreateOverviewDiagrams"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"UpdateModelIDsInCode"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"AttributeTypes"
-			value      	(value Text 
-|attr1=bool
-|attr2=short
-|attr3=int
-|attr4=long
-|attr5=char
-|attr6=float
-|attr7=double
-|attr8=void
-|attr9=clock_t
-|attr10=_complex
-|attr11=_dev_t
-|attr12=div_t
-|attr13=_exception
-|attr14=FILE
-|attr15=_finddata_t
-|attr16=_FPIEEE_RECORD
-|attr17=fpos_t
-|attr18=_HEAPINFO
-|attr19=jmp_buf
-|attr20=lconv
-|attr21=ldiv_t
-|attr22=_off_t
-|attr23=_onexit_t
-|attr24=_PNH
-|attr25=ptrdiff_t
-|attr26=sig_atomic_t
-|attr27=size_t
-|attr28=_stat
-|attr29=time_t
-|attr30=_timeb
-|attr31=tm
-|attr32=_utimbuf
-|attr33=va_list
-|attr34=wchar_t
-|attr35=wctrans_t
-|attr36=wctype_t
-|attr37=_wfinddata_t
-|attr38=_wfinddatai64_t
-|attr39=wint_t
-|attr40=ABORTPROC
-|attr41=ACMDRIVERENUMCB
-|attr42=ACMDRIVERPROC
-|attr43=ACMFILTERCHOOSEHOOKPROC
-|attr44=ACMFILTERENUMCB
-|attr45=ACMFILTERTAGENUMCB
-|attr46=ACMFORMATCHOOSEHOOKPROC
-|attr47=ACMFORMATENUMCB
-|attr48=ACMFORMATTAGENUMCB
-|attr49=APPLET_PROC
-|attr50=ATOM
-|attr51=BOOL
-|attr52=BOOLEAN
-|attr53=BYTE
-|attr54=CALINFO_ENUMPROC
-|attr55=CALLBACK
-|attr56=CHAR
-|attr57=COLORREF
-|attr58=CONST
-|attr59=CRITICAL_SECTION
-|attr60=CTRYID
-|attr61=DATEFMT_ENUMPROC
-|attr62=DESKTOPENUMPROC
-|attr63=DLGPROC
-|attr64=DRAWSTATEPROC
-|attr65=DWORD
-|attr66=EDITWORDBREAKPROC
-|attr67=ENHMFENUMPROC
-|attr68=ENUMRESLANGPROC
-|attr69=ENUMRESNAMEPROC
-|attr70=ENUMRESTYPEPROC
-|attr71=FARPROC
-|attr72=FILE_SEGMENT_ELEMENT
-|attr73=FLOAT
-|attr74=FONTENUMPROC
-|attr75=GOBJENUMPROC
-|attr76=GRAYSTRINGPROC
-|attr77=HACCEL
-|attr78=HANDLE
-|attr79=HBITMAP
-|attr80=HBRUSH
-|attr81=HCOLORSPACE
-|attr82=HCONV
-|attr83=HCONVLIST
-|attr84=HCURSOR
-|attr85=HDC
-|attr86=HDDEDATA
-|attr87=HDESK
-|attr88=HDROP
-|attr89=HDWP
-|attr90=HENHMETAFILE
-|attr91=HFILE
-|attr92=HFONT
-|attr93=HGDIOBJ
-|attr94=HGLOBAL
-|attr95=HHOOK
-|attr96=HICON
-|attr97=HIMAGELIST
-|attr98=HIMC
-|attr99=HINSTANCE
-|attr100=HKEY
-|attr101=HKL
-|attr102=HLOCAL
-|attr103=HMENU
-|attr104=HMETAFILE
-|attr105=HMODULE
-|attr106=HMONITOR
-|attr107=HOOKPROC
-|attr108=HPALETTE
-|attr109=HPEN
-|attr110=HRGN
-|attr111=HRSRC
-|attr112=HSZ
-|attr113=HTREEITEM
-|attr114=HWINSTA
-|attr115=HWND
-|attr116=INT
-|attr117=IPADDR
-|attr118=LANGID
-|attr119=LCID
-|attr120=LCSCSTYPE
-|attr121=LCSGAMUTMATCH
-|attr122=LCTYPE
-|attr123=LINEDDAPROC
-|attr124=LOCALE_ENUMPROC
-|attr125=LONG
-|attr126=LONGLONG
-|attr127=LPARAM
-|attr128=LPBOOL
-|attr129=LPBYTE
-|attr130=LPCCHOOKPROC
-|attr131=LPCFHOOKPROC
-|attr132=LPCOLORREF
-|attr133=LPCRITICAL_SECTION
-|attr134=LPCSTR
-|attr135=LPCTSTR
-|attr136=LPCVOID
-|attr137=LPCWSTR
-|attr138=LPDWORD
-|attr139=LPFIBER_START_ROUTINE
-|attr140=LPFRHOOKPROC
-|attr141=LPHANDLE
-|attr142=LPHANDLER_FUNCTION
-|attr143=LPINT
-|attr144=LPLONG
-|attr145=LPOFNHOOKPROC
-|attr146=LPPAGEPAINTHOOK
-|attr147=LPPAGESETUPHOOK
-|attr148=LPPRINTHOOKPROC
-|attr149=LPPROGRESS_ROUTINE
-|attr150=LPSETUPHOOKPROC
-|attr151=LPSTR
-|attr152=LPSTREAM
-|attr153=LPTHREAD_START_ROUTINE
-|attr154=LPTSTR
-|attr155=LPVOID
-|attr156=LPWORD
-|attr157=LPWSTR
-|attr158=LRESULT
-|attr159=LUID
-|attr160=PBOOL
-|attr161=PBOOLEAN
-|attr162=PBYTE
-|attr163=PCHAR
-|attr164=PCRITICAL_SECTION
-|attr165=PCSTR
-|attr166=PCTSTR
-|attr167=PCWCH
-|attr168=PCWSTR
-|attr169=PDWORD
-|attr170=PFLOAT
-|attr171=PFNCALLBACK
-|attr172=PHANDLE
-|attr173=PHANDLER_ROUTINE
-|attr174=PHKEY
-|attr175=PINT
-|attr176=PLCID
-|attr177=PLONG
-|attr178=PLUID
-|attr179=PROPENUMPROC
-|attr180=PROPENUMPROCEX
-|attr181=PSHORT
-|attr182=PSTR
-|attr183=PTBYTE
-|attr184=PTCHAR
-|attr185=PTIMERAPCROUTINE
-|attr186=PTSTR
-|attr187=PUCHAR
-|attr188=PUINT
-|attr189=PULONG
-|attr190=PUSHORT
-|attr191=PVOID
-|attr192=PWCHAR
-|attr193=PWORD
-|attr194=PWSTR
-|attr195=REGISTERWORDENUMPROC
-|attr196=REGSAM
-|attr197=SC_HANDLE
-|attr198=SC_LOCK
-|attr199=SENDASYNCPROC
-|attr200=SERVICE_STATUS_HANDLE
-|attr201=SHORT
-|attr202=TBYTE
-|attr203=TCHAR
-|attr204=TIMEFMT_ENUMPROC
-|attr205=TIMERPROC
-|attr206=UCHAR
-|attr207=UINT
-|attr208=ULONG
-|attr209=ULONGLONG
-|attr210=UNSIGNED
-|attr211=USHORT
-|attr212=VOID
-|attr213=WCHAR
-|attr214=WINAPI
-|attr215=WINSTAENUMPROC
-|attr216=WNDENUMPROC
-|attr217=WNDPROC
-|attr218=WORD
-|attr219=WPARAM
-|attr220=YIELDPROC
-|attr221=CPoint
-|attr222=CRect
-|attr223=CSize
-|attr224=CString
-|attr225=CTime
-|attr226=CTimeSpan
-|attr227=CCreateContext
-|attr228=CMemoryState
-|attr229=COleSafeArray
-|attr230=CPrintInfo
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Containers"
-			value      	(value Text 
-|cont1=CArray<$TYPE, $TYPE&>
-|cont2=CByteArray
-|cont3=CDWordArray
-|cont4=CObArray
-|cont5=CPtrArray
-|cont6=CStringArray
-|cont7=CUIntArray
-|cont8=CWordArray
-|cont9=CList<$TYPE, $TYPE&>
-|cont10=CPtrList
-|cont11=CObList
-|cont12=CStringList
-|cont13=CMapWordToPtr
-|cont14=CMapPtrToWord
-|cont15=CMapPtrToPtr
-|cont16=CMapWordToOb
-|cont17=CMapStringToPtr
-|cont18=CMapStringToOb
-|cont19=CMapStringToString
-|cont20=CTypedPtrArray<CPtrArray, $TYPE*>
-|cont21=CTypedPtrArray<CObArray, $TYPE*>
-|cont22=CTypedPtrList<CObList, $TYPE*>
-|cont23=CTypedPtrList<CPtrList, $TYPE*>
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ClassMethods"
-			value      	(value Text 
-|*_body=// ToDo: Add your specialized code here and/or call the base class
-|cm1=$NAME()
-|cm2=$NAME(orig:const $NAME&)
-|cm3=<<virtual>> ~$NAME()
-|cm4=operator=(rhs:$NAME&):$NAME&
-|cm4_body=// ToDo: Add your specialized code here and/or call the base class||return rhs;
-|cm5=<<const>> operator==(rhs:const $NAME&):bool
-|cm5_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm6=<<const>> operator!=(rhs:$NAME&):bool
-|cm6_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm7=<<const>> operator<(rhs:$NAME&):bool
-|cm7_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm8=<<const>> operator>(rhs:$NAME&):bool
-|cm8_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm9=<<const>> operator<=(rhs:$NAME&):bool
-|cm9_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm10=<<const>> operator>=(rhs:$NAME&):bool
-|cm10_body=// ToDo: Add your specialized code here and/or call the base class||return false;
-|cm11=<<friend>> operator>>(i:istream&, rhs:$NAME&):istream&
-|cm11_body=// ToDo: Add your specialized code here and/or call the base class||return i;
-|cm12=<<friend>> operator<<(o:ostream&, rhs:const $NAME&):ostream&
-|cm12_body=// ToDo: Add your specialized code here and/or call the base class||return o;
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Accessors"
-			value      	(value Text 
-|agf=<<const>> get_$BASICNAME():const $TYPE
-|agf_body=return $NAME;
-|asf=set_$BASICNAME(value:$TYPE):void
-|asf_body=$NAME = value;|return;
-|agv=<<const>> get_$BASICNAME():const $TYPE&
-|agv_body=return $NAME;
-|asv=set_$BASICNAME(value:$TYPE&):void
-|asv_body=$NAME = value;|return;
-|agp=<<const>> get_$BASICNAME():const $TYPE
-|agp_body=return $NAME;
-|asp=set_$BASICNAME(value:$TYPE):void
-|asp_body=$NAME = value;|return;
-|agr=<<const>> get_$BASICNAME():const $TYPE
-|agr_body=return $NAME;
-|asr=set_$BASICNAME(value:$TYPE):void
-|asr_body=$NAME = value;|return;
-|aga=<<const>> get_$BASICNAME(index:int):const $TYPE
-|aga_body=return $NAME[index];
-|asa=set_$BASICNAME(index:int, value:$TYPE):void
-|asa_body=$NAME[index] = value;|return;
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Conditionals"
-			value      	(value Text 
-|*_decl=#ifdef _DEBUG
-|*_base=CObject
-|cond1=<<virtual, const>> AssertValid():void
-|cond1_body=$SUPERNAME::AssertValid();
-|cond2=<<virtual, const>> Dump(dc:CDumpContext&):void
-|cond2_body=$SUPERNAME::Dump(dc);
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Patterns"
-			value      	(value Text 
-|patrn1=cm1,cm3,cond1,cond2
-|Patrn1_name=Default
-			))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Class"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Module-Spec"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InternalMap"
-			value      	(value Text 
-|*:AUTO:AUTO
-|
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"ExportMap"
-			value      	(value Text 
-|*:AUTO:AUTO
-|
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialSourceIncludes"
-			value      	(value Text 
-|"stdafx.h"
-			))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialHeaderIncludes"
-			value      	(value Text ""))
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Copyright"
-			value      	(value Text "Copyright (C) 1991 - 1999 Rational Software Corporation"))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Role"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Const"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"InitialValue"
-			value      	"")))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"default__Operation"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Generate"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"Inline"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"VC++"
-			name       	"DefaultBody"
-			value      	(value Text ""))))
-	    (object Attribute
-		tool       	"VC++"
-		name       	"HiddenTool"
-		value      	FALSE))
-	quid       	"34DBB4830145"))
--- a/tzservices/tzserver/analysis/Integration Test Design.cat	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,469 +0,0 @@
-
-(object Petal
-    version    	43
-    _written   	"Rose 6.1.9113.5"
-    charSet    	0)
-
-(object Class_Category "DST Integration Test"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"410F8AD50291"
-    exportControl 	"Public"
-    logical_models 	(list unit_reference_list
-	(object Class "CIntTestStepCompareTimes"
-	    quid       	"410F6666011A"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F66A001C6"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CIntTestStep"
-		    quidu      	"410F5C850361")))
-	(object Class "CTestServer"
-	    quid       	"410F5BEE03BF")
-	(object Class "CIntTestStepImportVcal"
-	    quid       	"410F63D900AD"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F669B0291"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CIntTestStep"
-		    quidu      	"410F5C850361")))
-	(object Class "CIntTestStepSetLocation"
-	    quid       	"410F63C4004F"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F669503D9"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CIntTestStep"
-		    quidu      	"410F5C850361")))
-	(object Class "CIntTest02Step"
-	    quid       	"410F63120233")
-	(object Class "CIntTestStepReadLocation"
-	    quid       	"410F5F110272"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F6699010A"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CIntTestStep"
-		    quidu      	"410F5C850361")))
-	(object Class "CIntTestStep"
-	    quid       	"410F5C850361"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F5CDC0233"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CDSTTestStep"
-		    quidu      	"410F5C7A011F")))
-	(object Class "CDSTTestStep"
-	    quid       	"410F5C7A011F"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F5CE20243"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CTestStep"
-		    quidu      	"410F5C6F0015"))
-	    operations 	(list Operations
-		(object Operation "TestL"
-		    quid       	"411381F60235"
-		    concurrency 	"Sequential"
-		    opExportControl 	"Public"
-		    uid        	0)))
-	(object Class "CTestStep"
-	    quid       	"410F5C6F0015"
-	    documentation 	
-|
-|
-	    
-	    operations 	(list Operations
-		(object Operation "doTestStepPreamble"
-		    quid       	"41137E14015A"
-		    concurrency 	"Sequential"
-		    opExportControl 	"Public"
-		    uid        	0)
-		(object Operation "doTestStep"
-		    quid       	"41137E49012B"
-		    concurrency 	"Sequential"
-		    opExportControl 	"Public"
-		    uid        	0)
-		(object Operation "doTestStepPostamble"
-		    quid       	"41137E52037D"
-		    concurrency 	"Sequential"
-		    opExportControl 	"Public"
-		    uid        	0)))
-	(object Class "CIntTestServer"
-	    quid       	"410F5C100286"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F5C30019C"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CDSTTestServer"
-		    quidu      	"410F5C050025"))
-	    used_nodes 	(list uses_relationship_list
-		(object Uses_Relationship
-		    quid       	"410F5EE8009D"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CTestStep"
-		    quidu      	"410F5C6F0015"
-		    supplier_cardinality 	(value cardinality "1..n"))))
-	(object Class "CDSTTestServer"
-	    quid       	"410F5C050025"
-	    superclasses 	(list inheritance_relationship_list
-		(object Inheritance_Relationship
-		    quid       	"410F5C290229"
-		    supplier   	"Logical View::Design Model::DST Integration Test::CTestServer"
-		    quidu      	"410F5BEE03BF"))))
-    logical_presentations 	(list unit_reference_list
-	(object ClassDiagram "DST Integration Test design"
-	    quid       	"410F8B1103C9"
-	    title      	"DST Integration Test design"
-	    zoom       	100
-	    max_height 	28350
-	    max_width  	21600
-	    origin_x   	0
-	    origin_y   	0
-	    items      	(list diagram_item_list
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CTestServer" @1
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(224, 249)
-		    label      	(object ItemLabel
-			Parent_View 	@1
-			location   	(96, 200)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	256
-			justify    	0
-			label      	"CTestServer")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5BEE03BF"
-		    width      	274
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CDSTTestServer" @2
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(224, 489)
-		    label      	(object ItemLabel
-			Parent_View 	@2
-			location   	(61, 440)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	326
-			justify    	0
-			label      	"CDSTTestServer")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5C050025"
-		    width      	344
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestServer" @3
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(224, 745)
-		    label      	(object ItemLabel
-			Parent_View 	@3
-			location   	(78, 696)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	292
-			justify    	0
-			label      	"CIntTestServer")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5C100286"
-		    width      	310
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CTestStep" @4
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(743, 200)
-		    label      	(object ItemLabel
-			Parent_View 	@4
-			location   	(512, 77)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	462
-			justify    	0
-			label      	"CTestStep")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5C6F0015"
-		    compartment 	(object Compartment
-			Parent_View 	@4
-			location   	(512, 135)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	4
-			max_width  	468)
-		    width      	480
-		    height     	268
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CDSTTestStep" @5
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(746, 506)
-		    label      	(object ItemLabel
-			Parent_View 	@5
-			location   	(583, 430)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	326
-			justify    	0
-			label      	"CDSTTestStep")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5C7A011F"
-		    compartment 	(object Compartment
-			Parent_View 	@5
-			location   	(583, 488)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	2
-			max_width  	181)
-		    width      	344
-		    height     	174
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestStep" @6
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(741, 766)
-		    label      	(object ItemLabel
-			Parent_View 	@6
-			location   	(610, 718)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	262
-			justify    	0
-			label      	"CIntTestStep")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5C850361"
-		    width      	280
-		    height     	118
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object NoteView @7
-		    location   	(1565, 409)
-		    label      	(object ItemLabel
-			Parent_View 	@7
-			location   	(1171, 328)
-			fill_color 	13434879
-			nlines     	3
-			max_width  	753
-			label      	"It is intended that the CDSTTestServer and CDSTTestStep are generic classes that implement OOM testing functionality.")
-		    line_color 	3342489
-		    fill_color 	13434879
-		    width      	813
-		    height     	174)
-		(object NoteView @8
-		    location   	(1571, 665)
-		    label      	(object ItemLabel
-			Parent_View 	@8
-			location   	(1174, 565)
-			fill_color 	13434879
-			nlines     	4
-			max_width  	759
-			label      	"Specific integration test server and integration test step are derived to support any integration specific functionality")
-		    line_color 	3342489
-		    fill_color 	13434879
-		    width      	819
-		    height     	213)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestStepReadLocation" @9
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(793, 1104)
-		    label      	(object ItemLabel
-			Parent_View 	@9
-			location   	(544, 1055)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	498
-			justify    	0
-			label      	"CIntTestStepReadLocation")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F5F110272"
-		    width      	516
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestStepImportVcal" @10
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(1300, 1107)
-		    label      	(object ItemLabel
-			Parent_View 	@10
-			location   	(1082, 1058)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	436
-			justify    	0
-			label      	"CIntTestStepImportVcal")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F63D900AD"
-		    width      	454
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestStepCompareTimes" @11
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(1815, 1107)
-		    label      	(object ItemLabel
-			Parent_View 	@11
-			location   	(1554, 1058)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	522
-			justify    	0
-			label      	"CIntTestStepCompareTimes")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F6666011A"
-		    width      	540
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::Design Model::DST Integration Test::CIntTestStepSetLocation" @12
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(280, 1104)
-		    label      	(object ItemLabel
-			Parent_View 	@12
-			location   	(53, 1055)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	454
-			justify    	0
-			label      	"CIntTestStepSetLocation")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"410F63C4004F"
-		    width      	472
-		    height     	120
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object NoteView @13
-		    location   	(968, 1280)
-		    label      	(object ItemLabel
-			Parent_View 	@13
-			location   	(274, 1212)
-			fill_color 	13434879
-			nlines     	2
-			max_width  	1353
-			label      	"There are many different test steps each intended to perform a simple operation.  There are only four shown here to keep the diagram readable")
-		    line_color 	3342489
-		    fill_color 	13434879
-		    width      	1413
-		    height     	149)
-		(object NoteView @14
-		    location   	(1562, 184)
-		    label      	(object ItemLabel
-			Parent_View 	@14
-			location   	(1171, 109)
-			fill_color 	13434879
-			nlines     	3
-			max_width  	746
-			label      	"CTestServer and CTestStep are TestExecute framework base classes")
-		    line_color 	3342489
-		    fill_color 	13434879
-		    width      	806
-		    height     	163)
-		(object InheritView "" @15
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F5C290229"
-		    client     	@2
-		    supplier   	@1
-		    line_style 	0)
-		(object InheritView "" @16
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F5C30019C"
-		    client     	@3
-		    supplier   	@2
-		    line_style 	0)
-		(object InheritView "" @17
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F5CE20243"
-		    client     	@5
-		    supplier   	@4
-		    line_style 	0)
-		(object InheritView "" @18
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F5CDC0233"
-		    client     	@6
-		    supplier   	@5
-		    line_style 	0)
-		(object InheritView "" @19
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F669B0291"
-		    client     	@10
-		    supplier   	@6
-		    line_style 	0)
-		(object InheritView "" @20
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F66A001C6"
-		    client     	@11
-		    supplier   	@6
-		    line_style 	0)
-		(object AttachView "" @21
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@5
-		    supplier   	@7
-		    line_style 	0)
-		(object AttachView "" @22
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@8
-		    supplier   	@6
-		    line_style 	0)
-		(object InheritView "" @23
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F6699010A"
-		    client     	@9
-		    supplier   	@6
-		    line_style 	0)
-		(object InheritView "" @24
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F669503D9"
-		    client     	@12
-		    supplier   	@6
-		    line_style 	0)
-		(object UsesView "" @25
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"410F5EE8009D"
-		    client     	@3
-		    supplier   	@4
-		    line_style 	0)))))
--- a/tzservices/tzserver/analysis/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/conf/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
Binary file tzservices/tzserver/documentation/SGL.GT0197.233 App-Services Tz 9.1 How-To Use the APIs.doc has changed
Binary file tzservices/tzserver/documentation/SGL.GT0403.210 SOS v9.5 Time Zone Services PREQ1776 How-To.doc has changed
--- a/tzservices/tzserver/documentation/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/group/backup_registration.xml	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzserver/group/backup_registration.xml	Thu Jun 24 13:52:58 2010 +0100
@@ -1,10 +1,10 @@
 <?xml version="1.0" standalone="yes"?>
 
 <!--
- Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of 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/tzservices/tzserver/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzserver/group/timezonetests.pkg	Thu Jun 24 13:52:58 2010 +0100
@@ -0,0 +1,41 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"timezonetests.pkg EN"}
+
+; Vendor name
+: "timezonetests"
+
+"\epoc32\data\c\dstscripts\LocationTest.script"-"c:\Dstscripts\LocationTest.script"
+"\epoc32\data\c\dstscripts\ConversionTest.script"-"c:\Dstscripts\ConversionTest.script"
+"\epoc32\data\c\dstscripts\VCalTest.script"-"c:\Dstscripts\VCalTest.script"
+"\epoc32\data\c\dstscripts\PerformanceTest.script"-"c:\Dstscripts\PerformanceTest.script"
+"\epoc32\data\c\dstscripts\autoupdatetest.script"-"c:\Dstscripts\autoupdatetest.script"
+"\epoc32\data\c\dstscripts\utcoffsettest.script"-"c:\Dstscripts\utcoffsettest.script"
+"\epoc32\data\c\dstscripts\autoupdatenotificationtest.script"-"c:\Dstscripts\autoupdatenotificationtest.script"
+"\epoc32\data\c\dstscripts\utcalarmtest.script"-"c:\Dstscripts\utcalarmtest.script"
+"\epoc32\data\c\dstscripts\isdaylightsavingontest.script"-"c:\Dstscripts\isdaylightsavingontest.script"
+"\epoc32\data\c\dstscripts\ServerMsgSender.script"-"c:\Dstscripts\ServerMsgSender.script"
+"\epoc32\data\c\dstscripts\BackupRestore.script"-"c:\Dstscripts\BackupRestore.script"
+"\epoc32\data\c\dstscripts\TimeZoneOffsetCheck.script"-"c:\Dstscripts\TimeZoneOffsetCheck.script"
+"\epoc32\data\c\Dstscripts\unittest.script"-"c:\Dstscripts\unittest.script"
+"\epoc32\data\c\dstscripts\NextDSTChange.script"-"c:\Dstscripts\NextDSTChange.script"
+"\epoc32\data\c\dstscripts\UnknownZoneTime.script"-"c:\Dstscripts\UnknownZoneTime.script"
\ No newline at end of file
--- a/tzservices/tzserver/swiobserverplugin/include/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/swiobserverplugin/source/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Common/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Common/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/bmarm/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/docs/PREQ234.mdl	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,652 +0,0 @@
-
-(object Petal
-    version    	43
-    _written   	"Rose 6.1.9113.5"
-    charSet    	0)
-
-(object Design "Logical View"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"41F0C7120101"
-    defaults   	(object defaults
-	rightMargin 	0.250000
-	leftMargin 	0.250000
-	topMargin  	0.250000
-	bottomMargin 	0.500000
-	pageOverlap 	0.250000
-	clipIconLabels 	TRUE
-	autoResize 	TRUE
-	snapToGrid 	TRUE
-	gridX      	16
-	gridY      	16
-	defaultFont 	(object Font
-	    size       	10
-	    face       	"Arial"
-	    bold       	FALSE
-	    italics    	FALSE
-	    underline  	FALSE
-	    strike     	FALSE
-	    color      	0
-	    default_color 	TRUE)
-	showMessageNum 	1
-	showClassOfObject 	TRUE
-	notation   	"Unified")
-    root_usecase_package 	(object Class_Category "Use Case View"
-	quid       	"41F0C7120103"
-	exportControl 	"Public"
-	global     	TRUE
-	logical_models 	(list unit_reference_list)
-	logical_presentations 	(list unit_reference_list
-	    (object UseCaseDiagram "Main"
-		quid       	"41F0C7130299"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    root_category 	(object Class_Category "Logical View"
-	quid       	"41F0C7120102"
-	exportControl 	"Public"
-	global     	TRUE
-	subsystem  	"Component View"
-	quidu      	"41F0C7120104"
-	logical_models 	(list unit_reference_list
-	    (object Class "CTestServer"
-		quid       	"41F0C7460084"
-		operations 	(list Operations
-		    (object Operation "CreateTestStep"
-			quid       	"41F0D37B0324"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CDstTestServer"
-		quid       	"41F0C75D01EC"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"41F0C7690278"
-			supplier   	"Logical View::CTestServer"
-			quidu      	"41F0C7460084")))
-	    (object Class "CUtcOffsetChangeEventNotifier"
-		quid       	"41F0C7750392"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"421466E20021"
-			supplier   	"Logical View::CActive"
-			quidu      	"4214665601D7")))
-	    (object Class "CDstIntServer"
-		quid       	"41F0C7D20084"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"41F0C7DC0055"
-			supplier   	"Logical View::CDstTestServer"
-			quidu      	"41F0C75D01EC"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"41F0C80D00E2"
-			supplier   	"Logical View::CTestStep"
-			quidu      	"41F0C7FB0343"
-			supplier_cardinality 	(value cardinality "1..n"))))
-	    (object Class "CTestStep"
-		quid       	"41F0C7FB0343"
-		operations 	(list Operations
-		    (object Operation "doTestStepL"
-			quid       	"41F0CAB300B3"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "doTestStepPreambleL"
-			quid       	"41F0CAD10046"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "doTestStepPostambleL"
-			quid       	"41F0CADB0382"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CDSTAutoUpdate"
-		quid       	"41F0C8AC02F5"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"41F0C8BE00A4"
-			supplier   	"Logical View::CTestStep"
-			quidu      	"41F0C7FB0343")))
-	    (object Class "CUTCOffset"
-		quid       	"41F0CA190065"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"41F0CA2D0334"
-			supplier   	"Logical View::CTestStep"
-			quidu      	"41F0C7FB0343")))
-	    (object Class "CAutoUpdateNotification"
-		quid       	"421466310179"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"4214664F00AE"
-			supplier   	"Logical View::CTestStep"
-			quidu      	"41F0C7FB0343")
-		    (object Inheritance_Relationship
-			quid       	"42146661014A"
-			supplier   	"Logical View::CActive"
-			quidu      	"4214665601D7"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"421466A50031"
-			supplier   	"Logical View::CUtcOffsetChangeEventNotifier"
-			quidu      	"41F0C7750392"
-			supplier_cardinality 	(value cardinality "1..1"))))
-	    (object Class "CActive"
-		quid       	"4214665601D7")
-	    (object Class "CUTCAlarm"
-		quid       	"421B055F001D"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"421B076B0087"
-			supplier   	"Logical View::CTestStep"
-			quidu      	"41F0C7FB0343"))
-		used_nodes 	(list uses_relationship_list
-		    (object Uses_Relationship
-			quid       	"421B0780027B"
-			supplier   	"Logical View::CAlarmNotifier"
-			quidu      	"421B072C03E3"
-			supplier_cardinality 	(value cardinality "1..1"))))
-	    (object Class "CAlarmNotifier"
-		quid       	"421B072C03E3"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"421B078B0077"
-			supplier   	"Logical View::CActive"
-			quidu      	"4214665601D7"))))
-	logical_presentations 	(list unit_reference_list
-	    (object ClassDiagram "Main"
-		quid       	"41F0C71302A7"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object ClassView "Class" "Logical View::CTestServer" @1
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(400, 128)
-			label      	(object ItemLabel
-			    Parent_View 	@1
-			    location   	(221, 47)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	358
-			    justify    	0
-			    label      	"CTestServer")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C7460084"
-			compartment 	(object Compartment
-			    Parent_View 	@1
-			    location   	(221, 108)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	2
-			    max_width  	365)
-			width      	376
-			height     	186
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CDstTestServer" @2
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(400, 512)
-			label      	(object ItemLabel
-			    Parent_View 	@2
-			    location   	(241, 461)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	318
-			    justify    	0
-			    label      	"CDstTestServer")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C75D01EC"
-			width      	336
-			height     	126
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @3
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"41F0C7690278"
-			client     	@2
-			supplier   	@1
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CDstIntServer" @4
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(400, 880)
-			label      	(object ItemLabel
-			    Parent_View 	@4
-			    location   	(259, 828)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	282
-			    justify    	0
-			    label      	"CDstIntServer")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C7D20084"
-			width      	300
-			height     	128
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @5
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"41F0C7DC0055"
-			client     	@4
-			supplier   	@2
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CTestStep" @6
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1008, 464)
-			label      	(object ItemLabel
-			    Parent_View 	@6
-			    location   	(724, 327)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	569
-			    justify    	0
-			    label      	"CTestStep")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C7FB0343"
-			compartment 	(object Compartment
-			    Parent_View 	@6
-			    location   	(724, 388)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	4
-			    max_width  	506)
-			width      	587
-			height     	299
-			annotation 	8
-			autoResize 	TRUE)
-		    (object UsesView "" @7
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"41F0C80D00E2"
-			client     	@4
-			supplier   	@6
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CDSTAutoUpdate" @8
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(400, 1408)
-			label      	(object ItemLabel
-			    Parent_View 	@8
-			    location   	(212, 1289)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	376
-			    justify    	0
-			    label      	"CDSTAutoUpdate")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C8AC02F5"
-			width      	394
-			height     	262
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @9
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"41F0C8BE00A4"
-			client     	@8
-			supplier   	@6
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CUTCOffset" @10
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(864, 1408)
-			label      	(object ItemLabel
-			    Parent_View 	@10
-			    location   	(686, 1289)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	357
-			    justify    	0
-			    label      	"CUTCOffset")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0CA190065"
-			width      	375
-			height     	262
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @11
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"41F0CA2D0334"
-			client     	@10
-			supplier   	@6
-			line_style 	0)
-		    (object NoteView @12
-			location   	(1792, 432)
-			label      	(object ItemLabel
-			    Parent_View 	@12
-			    location   	(1373, 348)
-			    fill_color 	13434879
-			    nlines     	3
-			    max_width  	802
-			    label      	"CTestServer and CTestStep are TestExecute framework base classes")
-			line_color 	3342489
-			fill_color 	13434879
-			width      	862
-			height     	181)
-		    (object ClassView "Class" "Logical View::CAutoUpdateNotification" @13
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1920, 1392)
-			label      	(object ItemLabel
-			    Parent_View 	@13
-			    location   	(1673, 1273)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	494
-			    justify    	0
-			    label      	"CAutoUpdateNotification")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"421466310179"
-			width      	512
-			height     	263
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @14
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"4214664F00AE"
-			client     	@13
-			supplier   	@6
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CActive" @15
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1568, 2032)
-			label      	(object ItemLabel
-			    Parent_View 	@15
-			    location   	(1452, 1972)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	232
-			    justify    	0
-			    label      	"CActive")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4214665601D7"
-			width      	250
-			height     	144
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CUtcOffsetChangeEventNotifier" @16
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1920, 1760)
-			label      	(object ItemLabel
-			    Parent_View 	@16
-			    location   	(1620, 1681)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	600
-			    justify    	0
-			    label      	"CUtcOffsetChangeEventNotifier")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"41F0C7750392"
-			width      	618
-			height     	182
-			annotation 	8
-			autoResize 	TRUE)
-		    (object UsesView "" @17
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"421466A50031"
-			client     	@13
-			supplier   	@16
-			line_style 	0)
-		    (object InheritView "" @18
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"421466E20021"
-			client     	@16
-			supplier   	@15
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CUTCAlarm" @19
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1280, 1408)
-			label      	(object ItemLabel
-			    Parent_View 	@19
-			    location   	(1145, 1292)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	270
-			    justify    	0
-			    label      	"CUTCAlarm")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"421B055F001D"
-			width      	288
-			height     	256
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CAlarmNotifier" @20
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(1280, 1760)
-			label      	(object ItemLabel
-			    Parent_View 	@20
-			    location   	(1114, 1678)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	332
-			    justify    	0
-			    label      	"CAlarmNotifier")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"421B072C03E3"
-			width      	350
-			height     	188
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @21
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"421B076B0087"
-			client     	@19
-			supplier   	@6
-			line_style 	0)
-		    (object UsesView "" @22
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"421B0780027B"
-			client     	@19
-			supplier   	@20
-			line_style 	0)
-		    (object InheritView "" @23
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"421B078B0077"
-			client     	@20
-			supplier   	@15
-			line_style 	0)))))
-    root_subsystem 	(object SubSystem "Component View"
-	quid       	"41F0C7120104"
-	physical_models 	(list unit_reference_list)
-	physical_presentations 	(list unit_reference_list
-	    (object Module_Diagram "Main"
-		quid       	"41F0C7130298"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    process_structure 	(object Processes
-	quid       	"41F0C7120105"
-	ProcsNDevs 	(list
-	    (object Process_Diagram "Deployment View"
-		quid       	"41F0C7120111"
-		title      	"Deployment View"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    properties 	(object Properties
-	attributes 	(list Attribute_Set
-	    (object Attribute
-		tool       	"DDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBase"
-			value      	("DataBaseSet" 800))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"DDL"
-				name       	"ANSI"
-				value      	800)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Oracle"
-				value      	801)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"SQLServer"
-				value      	802)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Sybase"
-				value      	803)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Watcom"
-				value      	804)))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnName"
-			value      	"Id")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5)")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ViewName"
-			value      	"V_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"TableName"
-			value      	"T_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"InheritSuffix"
-			value      	"_V")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"BaseViews"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ColumnType"
-			value      	"VARCHAR")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"NullsOK"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Unique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Model Integrator"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Version Control"
-		name       	"HiddenTool"
-		value      	FALSE))
-	quid       	"41F0C7120106"))
Binary file tzservices/tzserver/test/Integration/docs/SGL.GT0228.234 PREQ 234 App-Services Tz Daylight Saving Integration Test Design has changed
Binary file tzservices/tzserver/test/Integration/docs/SGL.GT0228.714 PREQ 234 Time Auto Update Test Specification has changed
--- a/tzservices/tzserver/test/Integration/docs/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-3
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/dstscripts/NextDSTChange.ini	Mon Feb 08 13:38:38 2010 +0000
+++ b/tzservices/tzserver/test/Integration/dstscripts/NextDSTChange.ini	Thu Jun 24 13:52:58 2010 +0100
@@ -1,7 +1,21 @@
-// TestNextDSTChange.ini
+//
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
-// Copyright (c) Symbian Software Ltd 2008 All rights reserved
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
 //
+// Description:
+//
+//
+
+
 
 [LondonDSTStart]
 timezone			=Europe/London
@@ -101,4 +115,4 @@
 expected_system_time_utc	=20070927:010000.000000
 expected_new_offset		=0
 expected_previous_dst_utc	=20070224:010000.000000
-expected_previous_offset	=0
\ No newline at end of file
+expected_previous_offset	=0
--- a/tzservices/tzserver/test/Integration/dstscripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/teststeps/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Integration/teststeps/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/bmarm/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/dstscripts/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/resource/hardware/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/teststeps/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/Unit/teststeps/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/component/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/component/testresourcefiles/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/bwins/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/data/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/eabi/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/group/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/inc/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file
--- a/tzservices/tzserver/test/switest/src/distribution.policy.s60	Mon Feb 08 13:38:38 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-7
\ No newline at end of file