installationservices/swi/source/swis/server/installmachine.cpp
changeset 77 d1838696558c
parent 42 d17dc5398051
equal deleted inserted replaced
75:2d2d25361590 77:d1838696558c
  1929 		(aNativeComponentInfo->iInstallStatus == Usif::EAlreadyInstalled) ||
  1929 		(aNativeComponentInfo->iInstallStatus == Usif::EAlreadyInstalled) ||
  1930 		(aNativeComponentInfo->iInstallStatus == Usif::ENewerVersionAlreadyInstalled))
  1930 		(aNativeComponentInfo->iInstallStatus == Usif::ENewerVersionAlreadyInstalled))
  1931 		{
  1931 		{
  1932 		Usif::CComponentEntry* componentEntry = NULL;
  1932 		Usif::CComponentEntry* componentEntry = NULL;
  1933 		// Get the component entry using the global Id and the software type.
  1933 		// Get the component entry using the global Id and the software type.
  1934 		TRAPD(err, componentEntry = scrSession.GetComponentL(*(aNativeComponentInfo->iGlobalComponentId), Usif::KSoftwareTypeNative));
  1934 		componentEntry = scrSession.GetComponentL(*(aNativeComponentInfo->iGlobalComponentId), Usif::KSoftwareTypeNative);		
  1935 		if (err == KErrNone)
  1935 		if (NULL != componentEntry)
  1936 			{			
  1936 			{			
  1937 			aNativeComponentInfo->iComponentId = componentEntry->ComponentId();
  1937 			aNativeComponentInfo->iComponentId = componentEntry->ComponentId();
  1938 			aNativeComponentInfo->iScomoState = static_cast<Usif::TScomoState>(componentEntry->ScomoState());
  1938 			aNativeComponentInfo->iScomoState = static_cast<Usif::TScomoState>(componentEntry->ScomoState());
  1939 			delete componentEntry;
  1939 			delete componentEntry;
  1940 			}
  1940 			}
  2066 		// So, say the current component will become a new component. If the entry is not found in SCR, the base package is not installed.
  2066 		// So, say the current component will become a new component. If the entry is not found in SCR, the base package is not installed.
  2067 		// So, say the current component will become invalid (as the base is missing).
  2067 		// So, say the current component will become invalid (as the base is missing).
  2068 		Usif::CComponentEntry* componentEntry = NULL;
  2068 		Usif::CComponentEntry* componentEntry = NULL;
  2069 		HBufC* globalId = FormatGlobalIdLC(controllerInfo.Uid().Uid(), componentName, EInstInstallation);
  2069 		HBufC* globalId = FormatGlobalIdLC(controllerInfo.Uid().Uid(), componentName, EInstInstallation);
  2070 		componentEntry = aScrSession.GetComponentL(*globalId, Usif::KSoftwareTypeNative);
  2070 		componentEntry = aScrSession.GetComponentL(*globalId, Usif::KSoftwareTypeNative);
  2071 		if (componentEntry != NULL)		
  2071 		if (NULL != componentEntry)		
  2072 			{
  2072 			{
  2073 			aNativeComponentInfo->iInstallStatus = Usif::ENewComponent;
  2073 			aNativeComponentInfo->iInstallStatus = Usif::ENewComponent;
  2074 			}
  2074 			}
  2075 		else
  2075 		else
  2076 			{	
  2076 			{	
  2096 		CleanupStack::PushL(tempBuffer);
  2096 		CleanupStack::PushL(tempBuffer);
  2097 		
  2097 		
  2098 		stream.Open(*tempBuffer);
  2098 		stream.Open(*tempBuffer);
  2099 		CleanupClosePushL(stream);		
  2099 		CleanupClosePushL(stream);		
  2100 	
  2100 	
  2101 		// Externalise the component info in to the stream		
  2101 		// Externalise the component info in to the stream
  2102 		TRAP(err, iInstallMachine.iNativeComponentInfo->ExternalizeL(stream));
  2102 		TRAP(err, iInstallMachine.iNativeComponentInfo->ExternalizeL(stream));
  2103 		if (err == KErrOverflow)
  2103 		if (err == KErrOverflow)
  2104 			{
  2104 			{
  2105 			// Release the last allocation and re allocate with one more fold
  2105 			// Release the last allocation and re allocate with one more fold
  2106 			CleanupStack::PopAndDestroy(2, tempBuffer); // tempBuffer, stream
  2106 			CleanupStack::PopAndDestroy(2, tempBuffer); // tempBuffer, stream