persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.cpp
branchRCL_3
changeset 8 fa9941cf3867
parent 1 c084286672be
child 23 26645d81f48d
equal deleted inserted replaced
6:5ffdb8f2067f 8:fa9941cf3867
   310 		
   310 		
   311 		TInt err=iMultiRofsUidList.FindInOrder(find,reposSortOrder);
   311 		TInt err=iMultiRofsUidList.FindInOrder(find,reposSortOrder);
   312 		if (err==KErrNotFound)
   312 		if (err==KErrNotFound)
   313 			{
   313 			{
   314 			//new entry
   314 			//new entry
   315 			TMultiRofsList newEntry(TUid::Uid(uidNum));
   315 			find.iMountFlagList.AppendL(newFlag);
   316 			newEntry.iMountFlagList.AppendL(newFlag);
   316 			iMultiRofsUidList.InsertInOrderL(find,reposSortOrder);
   317 			iMultiRofsUidList.InsertInOrderL(newEntry,reposSortOrder);
       
   318 			}
   317 			}
   319 		else
   318 		else
   320 			{
   319 			{
   321 			//entry exist, just need to update the array inside TMultiRofsList
   320 			//entry exist, just need to update the array inside TMultiRofsList
   322 			err=iMultiRofsUidList[err].iMountFlagList.InsertInOrder(newFlag,TRofsFlag::CompareFlag);
   321 			err=iMultiRofsUidList[err].iMountFlagList.InsertInOrder(newFlag,TRofsFlag::CompareFlag);
   451 	We may want to give warning if they try to have global propertie section in the overriding layers
   450 	We may want to give warning if they try to have global propertie section in the overriding layers
   452 	although this obviously now can be ignored now, just need to make sure that repository follows the format
   451 	although this obviously now can be ignored now, just need to make sure that repository follows the format
   453 	and not corrupted
   452 	and not corrupted
   454 	*/
   453 	*/
   455 	TSettingsAccessPolicy defaultTs=aOverrideRepository->GetDefaultAccessPolicy();
   454 	TSettingsAccessPolicy defaultTs=aOverrideRepository->GetDefaultAccessPolicy();
   456 	//lets panic first on debug mode only
       
   457 	//here we panic immediately if there is any defined in the range meta/policy(we can check individually if
   455 	//here we panic immediately if there is any defined in the range meta/policy(we can check individually if
   458 	//they do override later on,we will assume any definiton of global policy is invalid here
   456 	//they do override later on,we will assume any definiton of global policy is invalid here
   459 	if (   aOverrideRepository->Owner() != aCoreRepository->iSimRep->Owner()
   457 	if (   aOverrideRepository->Owner() != aCoreRepository->iSimRep->Owner()
   460 		|| (aOverrideRepository->DefaultMeta()!=0 && aOverrideRepository->DefaultMeta()!= aCoreRepository->iSimRep->DefaultMeta())
   458 		|| (aOverrideRepository->DefaultMeta()!=0 && aOverrideRepository->DefaultMeta()!= aCoreRepository->iSimRep->DefaultMeta())
   461 		|| (defaultTs.HighKey()!=0 && aOverrideRepository->GetDefaultReadAccessPolicy().Package() !=	aCoreRepository->iSimRep->GetDefaultReadAccessPolicy().Package())
   459 		|| (defaultTs.HighKey()!=0 && aOverrideRepository->GetDefaultReadAccessPolicy().Package() !=	aCoreRepository->iSimRep->GetDefaultReadAccessPolicy().Package())
   503 			}
   501 			}
   504 		}
   502 		}
   505 	
   503 	
   506 	}	
   504 	}	
   507 
   505 
   508 //Function on initialising a repository of multi ROFS files
   506 /**Function on initialising a repository of multi ROFS files
       
   507 aCoreInitialized indicate whether there is already existing keyspace file in the core layer
       
   508 otherwise the first one in the rofs layer will be the core repository
       
   509 */ 
   509 void CObservable::MergeMultiRofsL(TBool aCoreInitialized,CSharedRepository* aCoreRepository,const RArray<TRofsFlag>& aOverridingFileList)
   510 void CObservable::MergeMultiRofsL(TBool aCoreInitialized,CSharedRepository* aCoreRepository,const RArray<TRofsFlag>& aOverridingFileList)
   510 	{
   511 	{
   511 	//load all the files and construct an array of CHeapRepository to merge content into it
   512 	//load all the files and construct an array of CHeapRepository to merge content into it
   512 	TInt sortedCount=aOverridingFileList.Count();
   513 	TInt sortedCount=aOverridingFileList.Count();
   513 	TFileName repFileName;
   514 	TFileName repFileName;
   528 			if (isTxt)
   529 			if (isTxt)
   529 				{
   530 				{
   530 				CIniFileIn* iniFile;
   531 				CIniFileIn* iniFile;
   531 				TInt err=CIniFileIn::NewLC(TServerResources::iFs,iniFile,repFileName);
   532 				TInt err=CIniFileIn::NewLC(TServerResources::iFs,iniFile,repFileName);
   532 				User::LeaveIfError(err);
   533 				User::LeaveIfError(err);
   533 				aCoreRepository->ReloadContentL(*iniFile,ETrue);
   534 				err=aCoreRepository->ReloadContentL(*iniFile,ETrue);
       
   535 				User::LeaveIfError(err);
   534 				CleanupStack::PopAndDestroy(iniFile);//iniFile
   536 				CleanupStack::PopAndDestroy(iniFile);//iniFile
   535 				}
   537 				}
   536 			else
   538 			else
   537 				{
   539 				{
   538 				aCoreRepository->iSimRep->CreateRepositoryFromCreFileL(TServerResources::iFs,repFileName);
   540 				aCoreRepository->iSimRep->CreateRepositoryFromCreFileL(TServerResources::iFs,repFileName);