calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp
branchRCL_3
changeset 5 42814f902fe6
parent 0 f979ecb2b13e
child 67 1539a383d7b6
equal deleted inserted replaced
0:f979ecb2b13e 5:42814f902fe6
   258             aUser.DatabaseOpened();
   258             aUser.DatabaseOpened();
   259             break;
   259             break;
   260 
   260 
   261         case EStateDBClosed:
   261         case EStateDBClosed:
   262             iState = EStateOpeningDB;
   262             iState = EStateOpeningDB;
       
   263             //Chances of leave due to file corruption or no memory.
       
   264             TRAPD(err,
   263             if( !iGlobalData )
   265             if( !iGlobalData )
   264                 {
   266                 {
   265                 iGlobalData = CCalenGlobalData::Instance();
   267                 iGlobalData = CCalenGlobalData::Instance();
   266                 if ( !iGlobalData )
   268                 if ( !iGlobalData )
   267                     {
   269                     {
   268                     // Context change notifier is NULL.
   270                     // Context change notifier is NULL.
   269                     iGlobalData = CCalenGlobalData::NewL( *this, NULL );
   271                     iGlobalData = CCalenGlobalData::NewL( *this, NULL );
   270                     }
   272                     }
   271                 }
   273                 }
   272             iGlobalData->InstanceViewL();
   274             iGlobalData->InstanceViewL();
   273             OpenDatabaseCompletedL();
   275 				  );
       
   276 			OpenDatabaseCompletedL(err);
   274             break;
   277             break;
   275 
   278 
   276         default:
   279         default:
   277             Panic(EPanicInvalidState);
   280             Panic(EPanicInvalidState);
   278         }
   281         }
   357 // CCalenSvrDBManager::OpenDatabaseCompletedL
   360 // CCalenSvrDBManager::OpenDatabaseCompletedL
   358 // OpenDatabaseCompletedL is called back, when engine is ready
   361 // OpenDatabaseCompletedL is called back, when engine is ready
   359 // (other items were commented in a header).
   362 // (other items were commented in a header).
   360 // -----------------------------------------------------------------------------
   363 // -----------------------------------------------------------------------------
   361 //
   364 //
   362 void CCalenSvrDBManager::OpenDatabaseCompletedL()
   365 void CCalenSvrDBManager::OpenDatabaseCompletedL(TInt aErrorVal)
   363     {
   366     {
   364     TRACE_ENTRY_POINT;
   367     TRACE_ENTRY_POINT;
   365     switch(iState)
   368     switch(iState)
   366         {
   369         {
   367         case EStateOpeningDB:
   370         case EStateOpeningDB:
   368             {
   371             {
   369             if (iUsers.Count() > 0)
   372             if (iUsers.Count() > 0)
   370                 {
   373                 {
   371                 NotifyUsersL();
   374                 NotifyUsersL(aErrorVal);
   372                 iState = EStateDBOpen;
   375                 iState = EStateDBOpen;
   373                 }
   376                 }
   374             else
   377             else
   375                 {
   378                 {
   376                 iState = EStateGoingToCloseDB;
   379                 iState = EStateGoingToCloseDB;
   579 // -----------------------------------------------------------------------------
   582 // -----------------------------------------------------------------------------
   580 // CCalenSvrDBManager::NotifyUsersL
   583 // CCalenSvrDBManager::NotifyUsersL
   581 // (other items were commented in a header).
   584 // (other items were commented in a header).
   582 // -----------------------------------------------------------------------------
   585 // -----------------------------------------------------------------------------
   583 //
   586 //
   584 void CCalenSvrDBManager::NotifyUsersL(void)
   587 void CCalenSvrDBManager::NotifyUsersL(TInt aErrorVal)
   585     {
   588     {
   586     TRACE_ENTRY_POINT;
   589     TRACE_ENTRY_POINT;
   587 
   590 
   588     RPointerArray<MCalenDBUser> users( iUsers.Count() );
   591     RPointerArray<MCalenDBUser> users( iUsers.Count() );
   589     CleanupClosePushL( users ); // content not owned
   592     CleanupClosePushL( users ); // content not owned
   593         users.Append( iUsers[i] );
   596         users.Append( iUsers[i] );
   594         }
   597         }
   595 
   598 
   596     for( TInt i(0); i < users.Count(); ++i )
   599     for( TInt i(0); i < users.Count(); ++i )
   597         {
   600         {
   598         users[i]->DatabaseOpened();
   601         if(aErrorVal != KErrNone)
       
   602         	{
       
   603         	users[i]->HandleError();
       
   604         	}
       
   605          else
       
   606          	{
       
   607          	users[i]->DatabaseOpened();
       
   608          	}
   599         }
   609         }
   600 
   610 
   601     CleanupStack::PopAndDestroy( &users );
   611     CleanupStack::PopAndDestroy( &users );
   602 
   612 
   603     TRACE_EXIT_POINT;
   613     TRACE_EXIT_POINT;