metadataengine/server/src/mdsserversession.cpp
branchRCL_3
changeset 19 82c0024438c8
parent 17 50de4d668bb6
child 27 4a4892eec172
--- a/metadataengine/server/src/mdsserversession.cpp	Wed Mar 31 22:19:07 2010 +0300
+++ b/metadataengine/server/src/mdsserversession.cpp	Wed Apr 14 16:24:03 2010 +0300
@@ -69,7 +69,6 @@
 //
 void CMdSServerSession::ConstructL()
     {
-    iServer.IncrementSessions();
     }
 
 // ---------------------------------------------------------------------------
@@ -92,7 +91,6 @@
 
 	iServer.LockList().UnlockBySession( *this );
 	iServer.Notifier().RemoveEntriesBySession( *this );
-    iServer.DecrementSessions();
     
     // purge any pending notifications
 	iNotificationCache.ResetAndDestroy();
@@ -105,12 +103,25 @@
 //
 void CMdSServerSession::ServiceL( const RMessage2& aMessage )
     {
-    __LOG2( ELogServer, "ServiceL message: %d uid: %.8x", 
+    __LOG2( ELogServer, "ServiceL message: %d uid: %d", 
     		aMessage.Function(),
-    		aMessage.Identity());
-
+    		aMessage.Identity().iUid);
+    
 	if( iServer.BackupOrRestoreRunning() )
 		{
+        // Open client applications are closed during backup/restore,
+        // thus registered observers that would be removed during
+        // shutdown on clients, must be allowed to be removed even
+        // if backup/restore is running
+	    if( aMessage.Function() == EUnregister )
+	        {
+            TRAPD( err, ServiceFunctionL( aMessage ) );
+            if( err != KErrNone )
+                {
+                aMessage.Complete( err );
+                }
+            return;
+	        }
 		aMessage.Complete( KErrServerBusy );
 		return;
 		}