calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp
branchRCL_3
changeset 5 42814f902fe6
parent 0 f979ecb2b13e
child 67 1539a383d7b6
--- a/calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp	Tue Feb 02 10:12:19 2010 +0200
+++ b/calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp	Fri Feb 19 22:49:53 2010 +0200
@@ -260,6 +260,8 @@
 
         case EStateDBClosed:
             iState = EStateOpeningDB;
+            //Chances of leave due to file corruption or no memory.
+            TRAPD(err,
             if( !iGlobalData )
                 {
                 iGlobalData = CCalenGlobalData::Instance();
@@ -270,7 +272,8 @@
                     }
                 }
             iGlobalData->InstanceViewL();
-            OpenDatabaseCompletedL();
+				  );
+			OpenDatabaseCompletedL(err);
             break;
 
         default:
@@ -359,7 +362,7 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-void CCalenSvrDBManager::OpenDatabaseCompletedL()
+void CCalenSvrDBManager::OpenDatabaseCompletedL(TInt aErrorVal)
     {
     TRACE_ENTRY_POINT;
     switch(iState)
@@ -368,7 +371,7 @@
             {
             if (iUsers.Count() > 0)
                 {
-                NotifyUsersL();
+                NotifyUsersL(aErrorVal);
                 iState = EStateDBOpen;
                 }
             else
@@ -581,7 +584,7 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-void CCalenSvrDBManager::NotifyUsersL(void)
+void CCalenSvrDBManager::NotifyUsersL(TInt aErrorVal)
     {
     TRACE_ENTRY_POINT;
 
@@ -595,7 +598,14 @@
 
     for( TInt i(0); i < users.Count(); ++i )
         {
-        users[i]->DatabaseOpened();
+        if(aErrorVal != KErrNone)
+        	{
+        	users[i]->HandleError();
+        	}
+         else
+         	{
+         	users[i]->DatabaseOpened();
+         	}
         }
 
     CleanupStack::PopAndDestroy( &users );