persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp
branchRCL_3
changeset 24 cc28652e0254
parent 23 26645d81f48d
--- a/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp	Tue Aug 31 16:57:14 2010 +0300
+++ b/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp	Wed Sep 01 12:39:58 2010 +0100
@@ -32,25 +32,12 @@
 	{
 	iNotifier = &aObserver;
 	
-	TServerResources::iObserver->iObservers.ReserveL(1);
-	
-	TServerResources::iObserver->AddSharedRepositoryInfoL(aUid);
-	
-	TRAPD( err, iRepository = TServerResources::iObserver->AccessL(aUid, aFailIfNotFound) );
-	
+	iRepository = TServerResources::iObserver->AccessL(aUid, aFailIfNotFound);
 	//store uid
-	iUid = aUid;
-	
-	if (err == KErrNone)
-	    {
-        TRAP( err, TServerResources::iObserver->AddObserverL(aUid, this) );
-	    }
-	    
-	if (err != KErrNone)
-        {
-        TServerResources::iObserver->RemoveSharedRepositoryInfo(aUid);
-        User::Leave(err);
-        }
+	iUid = aUid;	
+
+	TServerResources::iObserver->AddObserverL(aUid, this);
+	TServerResources::iObserver->AddSharedRepositoryInfoL(aUid);
 	}
 
 void CServerRepository::Close()
@@ -411,7 +398,6 @@
 					  {
 					  if(err == KErrNoMemory)
 					    {
-                        repository->Close();
 					    User::LeaveNoMemory();
 					    }
 				      else
@@ -666,27 +652,21 @@
 			
 		// Create install rep for merging
  		CSharedRepository *installRep = 0;
- 		TRAPD( err, TServerResources::iObserver->LoadRepositoryLC(aUid, ETrue, installRep, CIniFileIn::EInstallOnly); CleanupStack::Pop(installRep) );
+ 		TServerResources::iObserver->LoadRepositoryLC(aUid, ETrue, installRep, CIniFileIn::EInstallOnly);
 	
-		if (err == KErrNone)
-            {
-            // Perform merge
-            TRAP( err, iRepository->HandleUpdateMergeL(aModified, *installRep) );
-            }
-        if (installRep!=NULL)
-            {
-            delete installRep;
-            }
-        Close();
-        User::LeaveIfError(err);
+		// Perform merge
+		iRepository->HandleUpdateMergeL(aModified, *installRep);
+						
+		CleanupStack::PopAndDestroy(installRep);
+		Close();
 		}
 	else	// No ROM or persists
 		{
 		// Create install rep for persisting
 		OpenL(aUid, aNotifier);
-		TRAPD(err, iRepository->CommitChangesL());
-	    Close();
-	    User::LeaveIfError(err);
+	
+		iRepository->CommitChangesL();
+		Close();
 		}
 	}
 
@@ -718,19 +698,13 @@
 		
 		// Create ROM rep for merging
 	 	CSharedRepository *romRep = 0;
-		TRAPD( err, TServerResources::iObserver->LoadRepositoryLC(aUid, ETrue, romRep, CIniFileIn::ERomOnly); CleanupStack::Pop(romRep) );
+		TServerResources::iObserver->LoadRepositoryLC(aUid, ETrue, romRep, CIniFileIn::ERomOnly);
 
-		if (err == KErrNone)
-		    {
-            // Perform merge
-            TRAP( err, iRepository->HandleDeleteMergeL(*romRep) );
-		    }
-		if (romRep!=NULL)
-		    {
-            delete romRep;
-		    }
+		// Perform merge
+		iRepository->HandleDeleteMergeL(*romRep);
+		
+		CleanupStack::PopAndDestroy(romRep);
 		Close();
-		User::LeaveIfError(err);
 		}
 	else											// No ROM file, this is a complete uninstall
 		{		
@@ -1014,24 +988,24 @@
 	iRepository = NULL;
 	}
 
-TInt CServerRepository::CheckAccessPolicyBeforeMoving(const TClientRequest& aMessage, const TServerSetting* aSourceSetting, 
-				TUint32 aSourceKey, const TServerSetting* aTargetSetting, TUint32 aTargetKey, TUint32& aErrorKey)
+TInt CServerRepository::CheckAccessPolicyBeforeMoving(const TClientRequest& aMessage, const TServerSetting& aSourceSetting, 
+				TUint32 aSourceKey, const TServerSetting& aTargetSetting, TUint32 aTargetKey, TUint32& aErrorKey)
 	{
 	TInt error = KErrNone;
 	
-	if (aTargetSetting && !aTargetSetting->IsDeleted())
+	if (&aTargetSetting && !aTargetSetting.IsDeleted())
 		{
 		error=KErrAlreadyExists;
 		aErrorKey=aTargetKey;
 		}
 
-	if (!aMessage.CheckPolicy(GetReadAccessPolicy(*aSourceSetting),
+	if (!aMessage.CheckPolicy(GetReadAccessPolicy(aSourceSetting),
 		__PLATSEC_DIAGNOSTIC_STRING("CenRep: CServerRepository::MoveL - Attempt made to read a setting")))
 		{
 		error = KErrPermissionDenied;
 		aErrorKey = aSourceKey;
 		}
-	else if (!aMessage.CheckPolicy(GetWriteAccessPolicy(*aSourceSetting),
+	else if (!aMessage.CheckPolicy(GetWriteAccessPolicy(aSourceSetting),
 		__PLATSEC_DIAGNOSTIC_STRING("CenRep: CServerRepository::MoveL - Attempt made to delete a setting")))
 		{
 		error = KErrPermissionDenied;
@@ -1040,7 +1014,7 @@
 	else if (error == KErrAlreadyExists)
 		{
 		// set error to KErrPermissionDenied in preference to KErrAlreadyExists
-		if (!aMessage.CheckPolicy(GetWriteAccessPolicy(*aTargetSetting),
+		if (!aMessage.CheckPolicy(GetWriteAccessPolicy(aTargetSetting),
 			__PLATSEC_DIAGNOSTIC_STRING("CenRep: CServerRepository::MoveL - Attempt made to create a setting")))
 			{
 			error = KErrPermissionDenied;