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; |