callcontinuity/vcc/src/cvccdirector.cpp
branchRCL_3
changeset 10 ed1e38b404e5
parent 6 fc8c25e5a2e8
child 11 6134b5029079
equal deleted inserted replaced
9:bddb6d4447db 10:ed1e38b404e5
   195     if ( iProviders.Count() == 0 )
   195     if ( iProviders.Count() == 0 )
   196     	{
   196     	{
   197     	User::Leave( KErrNotFound );
   197     	User::Leave( KErrNotFound );
   198     	}
   198     	}
   199 	
   199 	
       
   200     iMandatoryPluginFailedError = KErrNone;
       
   201 
   200     //MT: setting CVccDirector as observer to plugin
   202     //MT: setting CVccDirector as observer to plugin
   201     Initialize( *this, aSsObserver );
   203     Initialize( *this, aSsObserver );
   202     
   204 
       
   205     // Leave if mandatory plugins failed
       
   206     User::LeaveIfError( iMandatoryPluginFailedError );
       
   207 
   203     // save CCP monitor ; CCCEPluginMCCPObserver
   208     // save CCP monitor ; CCCEPluginMCCPObserver
   204     const MCCPCSObserver& obs = static_cast<const MCCPCSObserver&>( aMonitor );
   209     const MCCPCSObserver& obs = static_cast<const MCCPCSObserver&>( aMonitor );
   205     iCCPObserver = const_cast<MCCPCSObserver*>(&obs);
   210     iCCPObserver = const_cast<MCCPCSObserver*>(&obs);
   206 
   211 
   207     const MCCPSsObserver& ssObs = static_cast<const MCCPSsObserver&>( aSsObserver );
   212     const MCCPSsObserver& ssObs = static_cast<const MCCPSsObserver&>( aSsObserver );
   227         TUid pluginUid = iProviders[ i ]->Uid();
   232         TUid pluginUid = iProviders[ i ]->Uid();
   228         RUBY_DEBUG1( "starting to initialize plugin index= %d", i );
   233         RUBY_DEBUG1( "starting to initialize plugin index= %d", i );
   229     	
   234     	
   230         TRAPD( err, InitializeL( aMonitor, aSsObserver, *(iProviders[ i ]) ) );
   235         TRAPD( err, InitializeL( aMonitor, aSsObserver, *(iProviders[ i ]) ) );
   231         RUBY_DEBUG1( "initialization err = %d", err );
   236         RUBY_DEBUG1( "initialization err = %d", err );
   232         switch( err )
   237         if ( KErrNone != err && KCSCallProviderPlugId == pluginUid.iUid ) // CS plugin mandatory
   233 			{
   238             {
   234 			case KErrNone:
   239             RUBY_DEBUG0( "-- Mandatory VCC plugin initialization FAILED" );    
   235 				iInitialisedPlugins.Append(  pluginUid.iUid );
   240             initSucceeded = EFalse; 
   236 				//fall-through
   241             iMandatoryPluginFailedError = err;
   237 			case KErrAlreadyExists:
   242             }
   238 				RUBY_DEBUG0( "-- VCC plugin initialization OK" );
   243         else
   239 				break;
   244             {
   240 			default:
   245             switch( err )
   241 				RUBY_DEBUG0( "-- VCC plugin initialization FAILED" );
   246                 {
   242 				initSucceeded = EFalse;
   247                 case KErrNone:
   243 				break;
   248                     iInitialisedPlugins.Append(  pluginUid.iUid );
   244 			}
   249                     //fall-through
       
   250                 case KErrAlreadyExists:
       
   251                     RUBY_DEBUG0( "-- VCC plugin initialization OK" );
       
   252                     break;
       
   253                 default:
       
   254                     RUBY_DEBUG0( "-- VCC plugin initialization FAILED" );
       
   255                     initSucceeded = EFalse;
       
   256                     break;
       
   257                 }
       
   258             }
   245         }
   259         }
   246 	
   260 	
   247 	RUBY_DEBUG1( "-- VCC plugin nbr of initialized plugins:%d",
   261 	RUBY_DEBUG1( "-- VCC plugin nbr of initialized plugins:%d",
   248 			iInitialisedPlugins.Count() );
   262 			iInitialisedPlugins.Count() );
   249 	return initSucceeded; 
   263 	return initSucceeded;