// --------------------------------------------------------------------------- // Find service IDs with same properties // --------------------------------------------------------------------------- // void CSPSettingsEngine::FindServiceIdsFromPropertiesL( const RPropertyArray& aPropertyArray, RIdArray& aServiceIds ) { XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsFromPropertiesL() - IN" ); RArray<TInt> entryIds; CleanupClosePushL( entryIds ); RIpAppPropArray array; TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); CleanupStack::PushL( cleanup ); // todo custom cleanup stack ConvertSpArrayToCenRepArrayL( aPropertyArray, array ); TInt err = iCenRepUtils->FindEntryIdsFromPropertiesL( array, entryIds ); if( err == KErrNone ) { TInt count = entryIds.Count(); for( TInt i = 0; i < count; i++ ) { TServiceId id = (TServiceId)entryIds[i]; if( id != KSPDefaultVoIPServiceId ) { User::LeaveIfError( aServiceIds.Append( id ) ); } } } CleanupStack::PopAndDestroy( &array ); CleanupStack::PopAndDestroy( &entryIds ); XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsFromPropertiesL() - OUT" ); }
// --------------------------------------------------------------------------- // Search stored service IDs of service provider settings entries // --------------------------------------------------------------------------- // TInt CSPSettingsEngine::FindServiceIdsL( RIdArray& aServiceIds ) { XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsL() - IN" ); RArray<TInt> cenrepArray; CleanupClosePushL( cenrepArray ); TInt err = iCenRepUtils->FindEntryIdsL( cenrepArray ); for( TInt i = 0; i < cenrepArray.Count(); i++ ) { TServiceId id = (TServiceId)cenrepArray[i]; if( id != KSPDefaultVoIPServiceId ) { User::LeaveIfError( aServiceIds.Append( id )); } } CleanupStack::PopAndDestroy( &cenrepArray ); XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsL() - OUT" ); return err; }