realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp
branchRCL_3
changeset 12 c2e8c8b73582
parent 4 dd3853b8dc3f
child 41 f54bfd820e04
equal deleted inserted replaced
10:dc4cddf5f2f8 12:c2e8c8b73582
   329 	PROFILE_DEBUG5("CSipAlrMigrCtrl::SendMigrationResult iap,allow,obsCount",
   329 	PROFILE_DEBUG5("CSipAlrMigrCtrl::SendMigrationResult iap,allow,obsCount",
   330 				   aIapId,
   330 				   aIapId,
   331 				   aAllowed,
   331 				   aAllowed,
   332 				   iObservers.Count())
   332 				   iObservers.Count())
   333 	    
   333 	    
   334 	    //Get the initial count of Observers
   334 		// It may be possible that Profile Could not be registered (if migration is allowed). In such cases error handling
   335 	    TInt count = iObservers.Count();;
   335         // for profile will be done, which will move Profile into Un-registered State
   336 	    for (TInt i = 0; i < count; ++i)
   336         // As the profile moves into Un-registered state, profile is detached from
       
   337         // the list of Observer which AlrMigrationController maintains. This dynamically
       
   338         // changes the Observer count.
       
   339 	    for (TInt i = iObservers.Count() -1; i >= 0; --i)
   337 		{
   340 		{
   338 		MSipAlrMigrationObserver& obs = iObservers[i].iObserver;
   341 		MSipAlrMigrationObserver& obs = iObservers[i].iObserver;
   339 		TRAPD(err, if (aAllowed)
   342 		TRAPD(err, if (aAllowed)
   340 			{
   343 			{
   341 			obs.MigrationIsAllowedL(aIapId);
   344 			obs.MigrationIsAllowedL(aIapId);
   348 		if (err != KErrNone)
   351 		if (err != KErrNone)
   349 			{
   352 			{
   350 			PROFILE_DEBUG4("MigrationIs(Dis)AllowedL leaves err,index", err, i)
   353 			PROFILE_DEBUG4("MigrationIs(Dis)AllowedL leaves err,index", err, i)
   351 			obs.ErrorOccurred(err);
   354 			obs.ErrorOccurred(err);
   352 			}
   355 			}
   353 		// Check the Observer Count. It may be possible that Profile Could Not
       
   354 		// be registered (if migration is allowed). In such cases error handling
       
   355 		// for profile will be done, which will move Profile into Un-registered State
       
   356 		// As the profile moves into Un-registered state, profile is detached from
       
   357 		// the list of Observer which AlrMigrationController maintains. This dynamically
       
   358 		// changes the Observer count.
       
   359         if(iObservers.Count() < count)
       
   360               i--;
       
   361         count = iObservers.Count();
       
   362 		}
   356 		}
   363 	}
   357 	}
   364 
   358 
   365 // -----------------------------------------------------------------------------
   359 // -----------------------------------------------------------------------------
   366 // CSipAlrMigrationController::FindIndex
   360 // CSipAlrMigrationController::FindIndex