installationservices/swcomponentregistry/source/client/scrclientsubsessions.cpp
branchRCL_3
changeset 66 8b7f4e561641
parent 65 7333d7932ef7
child 70 e8965914fac7
--- a/installationservices/swcomponentregistry/source/client/scrclientsubsessions.cpp	Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-/*
-* 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: 
-* Implementation for the subsessions of RSoftwareComponentRegistry. 
-* See class and function declarations for more detail.
-*
-*/
-
-
-#include "scr.h"
-#include "scrclient.inl"
-#include "scrcommon.h"
-#include "usiflog.h"
-#include <scs/streamingarray.h>
-
-using namespace Usif;
-
-//
-// RSoftwareComponentRegistryView
-//
-
-TInt RSoftwareComponentRegistryView::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-	{
-	return CallSubsessionFunction(aFunction, aArgs);
-	}
-
-EXPORT_C RSoftwareComponentRegistryView::RSoftwareComponentRegistryView()
-/**
-	This constructor provides a single point of definition from
-	which the superclass constructor is called.
- */
-	: RScsClientSubsessionBase()
-	{
-	// empty
-	}
-
-EXPORT_C void RSoftwareComponentRegistryView::Close()
-	{
-	RScsClientSubsessionBase::Close();
-	}
-
-EXPORT_C void RSoftwareComponentRegistryView::OpenViewL(const RSoftwareComponentRegistry& aCompReg, CComponentFilter* aFilter)
-	{
-	DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the components view."));
-	
-	Close(); //Close the SubSession before Re-Opening the same.
-	TInt err = CreateSubsession(aCompReg, ESubSessCreateComponentsView, TIpcArgs());
-	if(KErrNone != err)
-		{
-		DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the components view (Error:%d)"), err);
-		User::Leave(err);
-		}
-	
-	RBuf8 buf;
-	buf.CleanupClosePushL();
-	ExternalizeObjectL(aFilter, buf);
-	
-	DEBUG_PRINTF(_L("Sending the request to create a component view on the server side."));
-	TIpcArgs args(&buf);
-	User::LeaveIfError(CallSubsessionFunction(EOpenComponentsView, args));
-	CleanupStack::PopAndDestroy(&buf);
-	}
-
-EXPORT_C CComponentEntry* RSoftwareComponentRegistryView::NextComponentL(TLanguage aLocale) const
-	{
-	CComponentEntry* entry = CComponentEntry::NewLC();
-	if(!NextComponentL(*entry, aLocale))
-		{
-		CleanupStack::PopAndDestroy(entry);
-		return NULL;
-		}
-	CleanupStack::Pop(entry);
-	return entry;
-	}
-
-EXPORT_C TBool RSoftwareComponentRegistryView::NextComponentL(CComponentEntry& aEntry, TLanguage aLocale) const
-	{
-	DEBUG_PRINTF(_L("Sending the request to retrieve the next component from the component view."));
-    //To avoid call to NextComponentL before calling OpenViewL 
-	CheckSubSessionHandleL();
-    
-	TIpcArgs args(aLocale);
-	TInt argNum = 1;
-	return GetObjectL(*this, aEntry, EGetNextComponentSize, EGetNextComponentData, argNum, args);
-	}
-
-EXPORT_C void RSoftwareComponentRegistryView::NextComponentSetL(TInt aMaxCount, RPointerArray<CComponentEntry>& aComponentList, TLanguage aLocale) const
-	{
-	DEBUG_PRINTF(_L("Sending the request to retrieve the next set of components from the component view."));
-    //To avoid call to NextComponentSetL before calling OpenViewL 
-	CheckSubSessionHandleL();
-    
-	TIpcArgs args(aMaxCount, aLocale);
-	TInt argNum = 2;
-	GetObjectArrayL(*this, EGetNextComponentSetSize, EGetNextComponentSetData, argNum, args, aComponentList);
-	}
-
-void RSoftwareComponentRegistryView::CheckSubSessionHandleL() const
-    {
-    if(KNullHandle == SubSessionHandle())
-        {
-        DEBUG_PRINTF(_L("An invalid handle has been passed."));
-        User::Leave(KErrBadHandle);
-        }
-    }
-
-//
-// RSoftwareComponentRegistryFilesList
-//
-
-TInt RSoftwareComponentRegistryFilesList::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-	{
-	return CallSubsessionFunction(aFunction, aArgs);
-	}
-
-EXPORT_C RSoftwareComponentRegistryFilesList::RSoftwareComponentRegistryFilesList()
-/**
-	This constructor provides a single point of definition from
-	which the superclass constructor is called.
- */
-	: RScsClientSubsessionBase()
-	{
-	// empty
-	}
-
-EXPORT_C void RSoftwareComponentRegistryFilesList::OpenListL(const RSoftwareComponentRegistry& aCompReg, TComponentId aComponentId)
-	{
-	DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the file list."));
-	
-	Close(); //Close the SubSession before Re-Opening the same.
-	TInt err = CreateSubsession(aCompReg, ESubSessCreateFileList, TIpcArgs());
-	if(KErrNone != err)
-		{
-		DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the file list (Error:%d)."), err);
-		User::Leave(err);
-		}
-	
-	DEBUG_PRINTF(_L("Sending a request to create a file list on the server side."));
-	TIpcArgs args(aComponentId);
-	User::LeaveIfError(CallSubsessionFunction(EOpenFileList, args));
-	}
-
-EXPORT_C HBufC* RSoftwareComponentRegistryFilesList::NextFileL() const
-	{
-    //To avoid call to NextFileL before calling OpenListL 
-    CheckSubSessionHandleL();
-    
-	TIpcArgs args(TIpcArgs::ENothing);
-	TInt argNum = 0;
-	return GetObjectL<HBufC>(*this, EGetNextFileSize, EGetNextFileData, argNum, args);
-	}
-
-EXPORT_C void RSoftwareComponentRegistryFilesList::NextFileSetL(TInt aMaxCount, RPointerArray<HBufC>& aFileList) const
-	{
-	DEBUG_PRINTF(_L("Sending the request to retrieve the next set of components from the component view."));
-    //To avoid call to NextFileSetL before calling OpenListL 
-	CheckSubSessionHandleL();
-    
-	TIpcArgs args(aMaxCount);
-	TInt argNum = 1;
-	GetObjectArrayL(*this, EGetNextFileSetSize, EGetNextFileSetData, argNum, args, aFileList);
-	}
-
-EXPORT_C void RSoftwareComponentRegistryFilesList::Close()
-	{
-	RScsClientSubsessionBase::Close();
-	}
-
-void RSoftwareComponentRegistryFilesList::CheckSubSessionHandleL() const
-    {
-    if(KNullHandle == SubSessionHandle())
-        {
-        DEBUG_PRINTF(_L("An invalid handle has been passed."));
-        User::Leave(KErrBadHandle);
-        }
-    }
-
-//
-// RApplicationInfoView
-//
-
-TInt RApplicationInfoView::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-    {
-    return CallSubsessionFunction(aFunction, aArgs);
-    }
-
-EXPORT_C RApplicationInfoView::RApplicationInfoView()
-/**
-    This constructor provides a single point of definition from
-    which the superclass constructor is called.
- */
-    : RScsClientSubsessionBase()
-    {
-    }
-
-EXPORT_C void RApplicationInfoView::Close()
-    {
-    RScsClientSubsessionBase::Close();
-    }
-
-EXPORT_C void RApplicationInfoView::OpenViewL(const RSoftwareComponentRegistry& aCompReg, CAppInfoFilter* aAppInfoFilter,TLanguage aLocale)
-    {
-
-    DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the AppInfo view."));
-    
-    Close(); //Close the SubSession before Re-Opening the same.
-    TInt err = CreateSubsession(aCompReg, ESubSessCreateAppInfoView, TIpcArgs());
-    if(KErrNone != err)
-        {
-        DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the appinfo view (Error:%d)"), err);
-        User::Leave(err);
-        }
-    
-    RBuf8 buf;
-    buf.CleanupClosePushL();
-    ExternalizeObjectL(aAppInfoFilter, buf);
-    
-    DEBUG_PRINTF(_L("Sending the request to create a component view on the server side."));
-    TIpcArgs args(&buf, aLocale);
-    User::LeaveIfError(CallSubsessionFunction(EOpenAppInfoView, args));
-    CleanupStack::PopAndDestroy(&buf);
-    }
-
-
-EXPORT_C void  RApplicationInfoView::GetNextAppInfoL(TInt aNoOfEntries, RPointerArray<TAppRegInfo>& aAppInfoList) const
-    {
-    if(0 >= aNoOfEntries)
-         {
-         DEBUG_PRINTF(_L("No of Required AppInfo entries passed should be greater than 0"));
-         User::Leave(KErrArgument);
-         }
-
-    //To avoid call to GetNextAppInfoL before calling OpenAppInfoViewL 
-    if(KNullHandle == SubSessionHandle())
-        {
-        DEBUG_PRINTF(_L("An invalid handle has been passed."));
-        User::Leave(KErrBadHandle);
-        }
-    
-    TAppRegInfo* appInfo = NULL;         
-    TBool isAppInfoPresent = EFalse;
-    for(TInt i=0; i < aNoOfEntries ; ++i)
-       {
-       appInfo = new(ELeave) TAppRegInfo();
-       DEBUG_PRINTF(_L("Sending the request to retrieve the next Application Info from the AppInfo view."));
-       TIpcArgs args(TIpcArgs::ENothing);
-       TInt argNum = 1;
-            
-       TRAPD(err,isAppInfoPresent = GetObjectL(*this, *appInfo, EGetNextAppInfoSize, EGetNextAppInfoData, argNum, args));
-       if(KErrNone != err)
-           {
-           delete appInfo;
-           User::Leave(err);
-           }
-                        
-       if(!isAppInfoPresent)
-         {
-         DEBUG_PRINTF(_L8("Reached the end of the view."));     
-         delete appInfo;
-         break;
-         }
-       else
-         {
-         DEBUG_PRINTF2(_L("The Uid of the App received from the SCR server is 0x%x "), appInfo->Uid());
-         DEBUG_PRINTF2(_L("The App filename of the App received from the SCR server is %s "), appInfo->FullName().PtrZ());
-         DEBUG_PRINTF2(_L("The Short caption of the received from the SCR server App is %s "), appInfo->ShortCaption().PtrZ());
-         DEBUG_PRINTF2(_L("The Caption of the App received from the SCR server is %s "), appInfo->Caption().PtrZ());
-         aAppInfoList.AppendL(appInfo);
-         }            
-       }
-    }
-
-//
-// RRegistrationInfoForApplication
-
-TInt RRegistrationInfoForApplication::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-	{
-	return CallSubsessionFunction(aFunction, aArgs);
-	}
-
-EXPORT_C RRegistrationInfoForApplication::RRegistrationInfoForApplication()	: RScsClientSubsessionBase()
-	{
-	// empty
-	}
-
-EXPORT_C void RRegistrationInfoForApplication::OpenL(const RSoftwareComponentRegistry& aCompReg,const TUid aAppUid,TLanguage aLocale)
-	{
-	DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the App list based on AppId."));
-	
-	Close(); //Close the SubSession before Re-Opening the same.
-	TInt err = CreateSubsession(aCompReg, ESubSessCreateRegInfoForApp, TIpcArgs());
-	if(KErrNone != err)
-		{
-		DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server (Error:%d)."), err);
-		User::Leave(err);
-		}
-	
-	DEBUG_PRINTF(_L("Sending a request to set the AppId on the server side."));
-	TIpcArgs args(aAppUid.iUid,aLocale);
-	User::LeaveIfError(CallSubsessionFunction(ESetAppUid, args));
-	}
-
-EXPORT_C  void RRegistrationInfoForApplication::GetAppServicesUidsL(RArray<TUid>& aServiceUids) const
-	{
-	DEBUG_PRINTF(_L("Getting the Service UID array for the subsession appUid"));
-    //To avoid call to GetAppServicesUidsL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TIpcArgs args(TIpcArgs::ENothing);
-	TInt argNum = 1;
-	
-	GetObjectArrayL(*this, EGetServiceUidSize,EGetServiceUidList,argNum, args, aServiceUids);	
-	}
-
-EXPORT_C  TLanguage RRegistrationInfoForApplication::ApplicationLanguageL() const
-	{
-	DEBUG_PRINTF(_L("Getting the Locale of the specified App that best fits the current device language"));
-    //To avoid call to GetApplicationLanguageL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TLanguage aLanguage = ELangNone;
-	TPckg<TLanguage> applicationLanguage(aLanguage);
-	    
-	TIpcArgs args(&applicationLanguage);
-	
-	User::LeaveIfError(CallSubsessionFunction(EGetApplicationLanguage, args));
-	return(aLanguage);
-	}
-
-EXPORT_C  TInt RRegistrationInfoForApplication::DefaultScreenNumberL() const
-	{
-	DEBUG_PRINTF(_L("Getting the Default screen number from the App reg info"));
-    //To avoid call to GetDefaultScreenNumberL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TInt aDefaultScreenNumber = 0;
-	TPckg<TInt> uidDes(aDefaultScreenNumber);
-	
-	TIpcArgs args(&uidDes);
-	User::LeaveIfError(CallSubsessionFunction(EGetDefaultScreenNumber, args));	
-	return(aDefaultScreenNumber);
-	}
-
-EXPORT_C  TInt RRegistrationInfoForApplication::NumberOfOwnDefinedIconsL() const
-	{
-	DEBUG_PRINTF(_L("Getting the number of defined icons for the associated application and locale "));
-    //To avoid call to GetNumberOfOwnDefinedIconsL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TInt aCount = 0;
-	TPckg<TInt> uidDes(aCount);
-	TIpcArgs args(&uidDes);
-	
-	User::LeaveIfError(CallSubsessionFunction(EGetNumberOfOwnDefinedIcons, args));
-	return(aCount);
-	}
-
-EXPORT_C void RRegistrationInfoForApplication::GetAppViewsL(RPointerArray<Usif::CAppViewData>& aAppViewInfoArray) const
-    {
-        DEBUG_PRINTF(_L("Getting the view details associated with subsession appUid"));
-        //To avoid call to GetAppViewsL before calling OpenL 
-        CheckSubSessionHandleL();
-        
-        TIpcArgs args(TIpcArgs::ENothing);
-	 	TInt argNum = 1;
-        GetObjectArrayL(*this, EGetViewSize, EGetViewData, argNum, args, aAppViewInfoArray);
-    }
-
-EXPORT_C void RRegistrationInfoForApplication::Close()
-    {
-    RScsClientSubsessionBase::Close();
-    }
-
-EXPORT_C void RRegistrationInfoForApplication::GetAppOwnedFilesL(RPointerArray<HBufC>& aAppOwnedFiles) const
-    {
-     DEBUG_PRINTF(_L("Sending the request to retrieve the list of files owned by appUid associated with subsession "));
-     //To avoid call to GetAppOwnedFilesL before calling OpenL 
-     CheckSubSessionHandleL();
-     
-     TIpcArgs args(TIpcArgs::ENothing);
-     TInt argNum = 1;
-     GetObjectArrayL(*this, EGetAppOwnedFilesSize, EGetAppOwnedFilesData, argNum, args,aAppOwnedFiles);
-    }
-
-EXPORT_C void RRegistrationInfoForApplication::GetAppCharacteristicsL(TApplicationCharacteristics &aApplicationCharacteristics) const
-    {
-    DEBUG_PRINTF(_L("Sending the request to retrieve application characteristics."));
-    //To avoid call to GetAppCharacteristicsL before calling OpenL 
-    CheckSubSessionHandleL();
-    
-    TPckg<Usif::TApplicationCharacteristics> pckg(aApplicationCharacteristics);
-    TIpcArgs args(&pckg);
-    User::LeaveIfError(CallSubsessionFunction(EGetAppCharacteristics, args));
-    }
-	
-EXPORT_C void RRegistrationInfoForApplication::GetAppIconL(HBufC*& aFullFileName) const
-    {
-    DEBUG_PRINTF(_L("Sending the request to get application icon file name ."));    
-    //To avoid call to GetAppIconL before calling OpenL 
-    CheckSubSessionHandleL();
-    
-    TFileName fileName;
-    TPckg<TFileName> filenamePckg(fileName);
-    TIpcArgs args(&filenamePckg);
-
-    User::LeaveIfError(CallSubsessionFunction(EGetAppIconForFileName, args));
-    
-    aFullFileName = fileName.AllocL();
-
-    }
-	
-EXPORT_C void RRegistrationInfoForApplication::GetAppViewIconL(TUid aViewUid,HBufC*& aFullFileName) const
-    {
-    DEBUG_PRINTF(_L("Sending the request to get application view icon file name ."));
-    //To avoid call to GetAppViewIconL before calling OpenL 
-    CheckSubSessionHandleL();
-    
-    TFileName fileName;
-    TPckg<TFileName> filenamePckg(fileName);
-    TIpcArgs args(aViewUid.iUid,&filenamePckg);
-    
-    User::LeaveIfError(CallSubsessionFunction(EGetAppViewIconFileName, args));
- 
-    aFullFileName = fileName.AllocL();
-    }
-	
-void RRegistrationInfoForApplication::CheckSubSessionHandleL() const
-    {
-    if(KNullHandle == SubSessionHandle())
-        {
-        DEBUG_PRINTF(_L("An invalid handle has been passed."));
-        User::Leave(KErrBadHandle);
-        }
-    }
-
-//
-// RApplicationRegistrationInfo
-
-TInt RApplicationRegistrationInfo::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-    {
-    return CallSubsessionFunction(aFunction, aArgs);
-    }
-
-EXPORT_C RApplicationRegistrationInfo::RApplicationRegistrationInfo() : RScsClientSubsessionBase()
-    {
-    // empty
-    }
-
-EXPORT_C void RApplicationRegistrationInfo::OpenL(const RSoftwareComponentRegistry& aCompReg)
-    {
-    DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the App list."));
-    
-    Close(); //Close the SubSession before Re-Opening the same.
-    TInt err = CreateSubsession(aCompReg, ESubSessCreateAppRegInfo, TIpcArgs());
-    if(KErrNone != err)
-        {
-        DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server (Error:%d)."), err);
-        User::Leave(err);
-        }    
-    }
-
-EXPORT_C  TUid RApplicationRegistrationInfo::GetAppForDataTypeAndServiceL(const TDesC &aName,const TUid aServiceUid) const
-	{
-	DEBUG_PRINTF(_L("Get the AppUid corresponding to the mentioned Service and Type with the highest priority"));
-    //To avoid call to GetAppForDataTypeAndServiceL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TUid appUid;
-	
-	TPckg<TUid> uidDes(appUid);	    
-	TIpcArgs args(&aName, aServiceUid.iUid,&uidDes );
-	
-	User::LeaveIfError(CallSubsessionFunction(EGetAppForDataTypeAndService, args));
-	return(appUid);
-	}
-
-EXPORT_C  TUid RApplicationRegistrationInfo::GetAppForDataTypeL(const TDesC &aName) const
-	{
-	DEBUG_PRINTF(_L("Getting the AppUid corresponding to the mentioned Type with the highest priority"));
-    //To avoid call to GetAppForDataTypeL before calling OpenL 
-	CheckSubSessionHandleL();
-    
-	TUid appUid;
-	
-    TPckg<TUid> uidDes(appUid);  
-	TIpcArgs args(&aName, &uidDes);
-	 
-	User::LeaveIfError(CallSubsessionFunction(EGetAppForDataType, args));
-	return(appUid);
-	
-	}
-
-EXPORT_C void RApplicationRegistrationInfo::GetServiceInfoL(CAppServiceInfoFilter* aAppServiceInfoFilter, RPointerArray<Usif::CServiceInfo>& aAppServiceInfoArray, TLanguage aLocale) const
-    {
-    DEBUG_PRINTF(_L("Getting the Service Info details associated with the parameters set in the filter."));
-    //To avoid call to GetServiceInfoL before calling OpenL 
-    CheckSubSessionHandleL();
-    
-    RBuf8 buf;
-    buf.CleanupClosePushL();
-    ExternalizeObjectL(aAppServiceInfoFilter, buf);
-        
-    TIpcArgs args(&buf, aLocale);
-    TInt argNum = 2;
-    GetObjectArrayL(*this, EGetAppServiceInfoSize, EGetAppServiceInfoData, argNum, args, aAppServiceInfoArray);
-    CleanupStack::PopAndDestroy(&buf);
-    }
-
-EXPORT_C TBool RApplicationRegistrationInfo::GetAppInfoL(TUid aAppUid, TAppRegInfo& aAppInfo, TLanguage aLocale)
-    {
-    DEBUG_PRINTF2(_L("Getting information details of app 0x%x."), aAppUid.iUid);
-    
-    //To avoid call to GetAppInfoL before calling OpenL 
-    CheckSubSessionHandleL();
-    
-    TPckg<TAppRegInfo> appRegInfoPckg(aAppInfo);
-   
-    TIpcArgs args(aAppUid.iUid, aLocale, &appRegInfoPckg);
-    User::LeaveIfError(CallSubsessionFunction(EGetApplicationInfo, args));
-    if(aAppInfo.Uid().iUid!= NULL)
-        {
-        return ETrue;
-        }
-    else
-        return EFalse;
-    }
-
-
-EXPORT_C void RApplicationRegistrationInfo::Close()
-	{
-	RScsClientSubsessionBase::Close();
-	}
-
-void RApplicationRegistrationInfo::CheckSubSessionHandleL() const
-    {
-    if(KNullHandle == SubSessionHandle())
-        {
-        DEBUG_PRINTF(_L("An invalid handle has been passed."));
-        User::Leave(KErrBadHandle);
-        }
-    }
-
-
-//
-// RApplicationRegistryView
-//
-
-TInt RApplicationRegistryView::SendSyncMessage(TInt aFunction, const TIpcArgs& aArgs) const
-    {
-    return CallSubsessionFunction(aFunction, aArgs);
-    }
-
-EXPORT_C RApplicationRegistryView::RApplicationRegistryView() : RScsClientSubsessionBase()
-    {
-    }
-
-EXPORT_C void RApplicationRegistryView::Close()
-    {
-    RScsClientSubsessionBase::Close();
-    }
-
-EXPORT_C void RApplicationRegistryView::OpenViewL(const RSoftwareComponentRegistry& aCompReg, TLanguage aLocale)
-    {   
-    DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the Application Registration view."));
-
-    Close(); //Close the SubSession before Re-Opening the same.
-    
-    TInt err = CreateSubsession(aCompReg, ESubSessCreateAppRegistryView, TIpcArgs());
-    if(KErrNone != err)
-        {
-        DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the Application Registration view (Error:%d)"), err);
-        User::Leave(err);
-        }                
-    DEBUG_PRINTF(_L("Sending the request to create an applicaiton registry view on the server side."));
-    TIpcArgs args(aLocale);
-    User::LeaveIfError(CallSubsessionFunction(EOpenApplicationRegistrationInfoView, args));        
-    }
-	
-EXPORT_C void RApplicationRegistryView::OpenViewL(const RSoftwareComponentRegistry& aCompReg, const RArray<TUid>& aAppRegAppUids, TLanguage aLocale)
-    {   
-    DEBUG_PRINTF(_L("Creating a subsession to the SCR server for the Application Registration view with specified AppUids."));
-    
-    Close();  //Close the SubSession before Re-Opening the same.
-    
-    TInt err = CreateSubsession(aCompReg, ESubSessCreateAppRegistryView, TIpcArgs());
-    if(KErrNone != err)
-        {
-        DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the Application Registration view with specified AppUids (Error:%d)"), err);
-        User::Leave(err);
-        }                
-    DEBUG_PRINTF(_L("Sending the request to create an applicaiton registry view on the server side."));
-     
-    TInt32 size = aAppRegAppUids.Count();
-    const TInt32 maxBufSize= sizeof(TInt32)+ size*sizeof(TInt32);   // number of entries +  number of entry * size of AppUid stored as TUid
-      
-    // allocate buffer for the array
-    HBufC8* bufForAppUids = HBufC8::NewMaxLC(maxBufSize);
-    TPtr8 ptrBufForAppUids = bufForAppUids->Des();
-    RDesWriteStream instream(ptrBufForAppUids);
-    CleanupClosePushL(instream);
-    instream.WriteInt32L(size);
-    for (TInt i = 0; i < size; ++i)
-        {
-        instream.WriteInt32L(aAppRegAppUids[i].iUid);
-        }
-        
-    instream.CommitL();
- 
-    TIpcArgs args(aLocale);
-    args.Set(1,&ptrBufForAppUids);
-    User::LeaveIfError(CallSubsessionFunction(EOpenApplicationRegistrationInfoForAppUidsView, args));  
-   
-    CleanupStack::PopAndDestroy(2,bufForAppUids); // bufForAppUid, instream 
-    }
-
-EXPORT_C void RApplicationRegistryView::GetNextApplicationRegistrationInfoL(TInt aNoOfEntries, RPointerArray<CApplicationRegistrationData>& aApplicationRegistration) const
-    {
-    if(0 >= aNoOfEntries)
-      {
-      DEBUG_PRINTF(_L("No of Required View entries passed should be greater than 0"));
-      User::Leave(KErrArgument);
-      }
-   //To avoid call to GetNextApplicationRegistrationInfoL before calling OpenApplicationRegistrationViewL 
-   if(KNullHandle == SubSessionHandle())
-     {
-     DEBUG_PRINTF(_L("An invalid handle has been passed."));
-     User::Leave(KErrBadHandle);
-     }
-    
-    CApplicationRegistrationData* applicationRegistration = NULL;
-    for(TInt i = 0 ; i < aNoOfEntries ; ++i)
-        {
-          applicationRegistration = CApplicationRegistrationData::NewLC();
-          TBool isApplicationRegistrationDataPresent = EFalse;                                    
-          DEBUG_PRINTF(_L("Sending the request to retrieve the next application details from the Application Registration view."));
-          TIpcArgs args;
-          TInt argNum = 1;
-          isApplicationRegistrationDataPresent = GetObjectL(*this, *applicationRegistration, EGetApplicationRegistrationSize, EGetApplicationRegistrationData, argNum, args);
-          if(!isApplicationRegistrationDataPresent)
-            {
-            DEBUG_PRINTF(_L8("Reached the end of the view."));  
-            CleanupStack::PopAndDestroy(applicationRegistration);
-            break;
-            }
-          else
-            {
-            DEBUG_PRINTF(_L("received the application registration data from the SCR Server "));                                       
-            aApplicationRegistration.AppendL(applicationRegistration);
-            CleanupStack::Pop(applicationRegistration);
-            }            
-        }
-    }