installationservices/swi/source/sisregistry/client/sisregistryentry.cpp
changeset 5 3eebb1e54d3a
parent 0 ba25891c3a9e
child 34 741e5bba2bd1
child 42 d17dc5398051
equal deleted inserted replaced
3:127731b7107d 5:3eebb1e54d3a
   637 	
   637 	
   638 	User::LeaveIfError(SendReceive(ESignedBySuCert, TIpcArgs(&signedSuCertPckg)));
   638 	User::LeaveIfError(SendReceive(ESignedBySuCert, TIpcArgs(&signedSuCertPckg)));
   639 	return signedSuCert;	
   639 	return signedSuCert;	
   640 	}
   640 	}
   641 
   641 
       
   642 EXPORT_C void RSisRegistryEntry::RegistryFilesL(RPointerArray<HBufC>& aRegistryFiles)
       
   643     {
       
   644 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
       
   645     HBufC8* outputBuffer = HBufC8::NewLC(KDefaultBufferSize);
       
   646 	TPtr8 outputPtr(outputBuffer->Des());
       
   647     
       
   648     TInt result = SendReceive(ERegistryFiles, TIpcArgs(&outputPtr));
       
   649     
       
   650     if (KErrOverflow == result)
       
   651         {
       
   652         TInt lenNeeded;
       
   653         TPckg<TInt> lenNeededPckg(lenNeeded);
       
   654         lenNeededPckg.Copy(*outputBuffer);
       
   655         
       
   656         // Re-allocate output buffer
       
   657         CleanupStack::PopAndDestroy(outputBuffer);
       
   658         outputBuffer = HBufC8::NewLC(lenNeeded);
       
   659         TPtr8 newOutputPtr(outputBuffer->Des());
       
   660         
       
   661         result = SendReceive(ERegistryFiles, TIpcArgs(&newOutputPtr));
       
   662         }
       
   663     User::LeaveIfError(result);
       
   664 
       
   665     // Reading the list of files from the buffer
       
   666     RDesReadStream outputStream(*outputBuffer);
       
   667     CleanupClosePushL(outputStream);    
       
   668     InternalizePointerArrayL(aRegistryFiles, outputStream);
       
   669         
       
   670     CleanupStack::PopAndDestroy(2, outputBuffer); // outputStream  
       
   671 #else
       
   672     // There is API is not currently supported with USIF
       
   673     User::Leave(KErrNotSupported);
       
   674 	aRegistryFiles.Close(); // To remove the compiler warning: variable/argument 'aRegistryFiles' is not used in function
       
   675 #endif
       
   676     }