contentstorage/srvsrc/casrv.cpp
changeset 109 e0aa398e6810
parent 103 b99b84bcd2d1
equal deleted inserted replaced
104:9b022b1f357c 109:e0aa398e6810
    16  */
    16  */
    17 // INCLUDE FILES
    17 // INCLUDE FILES
    18 #include <sqldb.h>
    18 #include <sqldb.h>
    19 #include <eikenv.h>
    19 #include <eikenv.h>
    20 #include <eikappui.h>
    20 #include <eikappui.h>
       
    21 
    21 #include "casrv.h"
    22 #include "casrv.h"
    22 #include "casrvdef.h"
    23 #include "casrvdef.h"
    23 #include "casrvsession.h"
    24 #include "casrvsession.h"
    24 #include "casrvengutils.h"
    25 #include "casrvengutils.h"
    25 #include "castorageproxy.h"
    26 #include "castorageproxy.h"
    26 #include "casrvmanager.h"
    27 #include "casrvmanager.h"
    27 #include "caprogressnotifier.h"
    28 #include "cabackupnotifier.h"
       
    29  
    28 
    30 
    29 // ==================== LOCAL FUNCTIONS ====================
    31 // ==================== LOCAL FUNCTIONS ====================
    30 
    32 
    31 /**
    33 /**
    32  * Create a server.
    34  * Create a server.
    76                 {
    78                 {
    77                 err = KErrNoMemory;
    79                 err = KErrNoMemory;
    78                 }
    80                 }
    79             }
    81             }
    80         }
    82         }
       
    83 
    81     // Let the caller know how it went.
    84     // Let the caller know how it went.
    82     RProcess::Rendezvous( err );
    85     RProcess::Rendezvous( err );
    83     if( !err )
    86     if( !err )
    84         {
    87         {
    85         CActiveScheduler::Start(); // Start off. Exit timer will stop it.
    88         CActiveScheduler::Start(); // Start off. Exit timer will stop it.
   115     {
   118     {
   116     // Cancel requests and delete all sessions first.
   119     // Cancel requests and delete all sessions first.
   117     // Base class would do it for us but that's too late - our sessions
   120     // Base class would do it for us but that's too late - our sessions
   118     // call the server back (SessionClosed, RemoveContainer, etc.).
   121     // call the server back (SessionClosed, RemoveContainer, etc.).
   119     Cancel();
   122     Cancel();
       
   123     delete iBackupNotifier;
   120     CSession2* session;
   124     CSession2* session;
   121     iSessionIter.SetToFirst();
   125     iSessionIter.SetToFirst();
   122     while( ( session = iSessionIter++ ) != NULL )
   126     while( ( session = iSessionIter++ ) != NULL )
   123         {
   127         {
   124         delete session;
   128         delete session;
   125         }
   129         }
   126     delete iSrvManager;
   130     delete iSrvManager;
       
   131     iSoftwareRegistry.Close();
   127     delete iSrvEngUtils;
   132     delete iSrvEngUtils;
   128     delete iProgressNotifier;
       
   129     delete iStorageProxy;
   133     delete iStorageProxy;
   130     }
   134     }
   131 
   135 
   132 // ---------------------------------------------------------
   136 // ---------------------------------------------------------
   133 //
   137 //
   154 void CCaSrv::ConstructL()
   158 void CCaSrv::ConstructL()
   155     {
   159     {
   156     iSessionCount = 0;
   160     iSessionCount = 0;
   157     iStorageProxy = CCaStorageProxy::NewL();
   161     iStorageProxy = CCaStorageProxy::NewL();
   158     iSrvEngUtils = CCaSrvEngUtils::NewL();
   162     iSrvEngUtils = CCaSrvEngUtils::NewL();
   159     iProgressNotifier = CCaProgressNotifier::NewL( *iStorageProxy );
   163     User::LeaveIfError( iSoftwareRegistry.Connect() );
   160     iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
   164     iSrvManager = CCaSrvManager::NewL( *iStorageProxy,
       
   165         &iSoftwareRegistry, iSrvEngUtils);
   161     TInt errCode = iSrvManager->LoadOperationErrorCodeL();
   166     TInt errCode = iSrvManager->LoadOperationErrorCodeL();
   162     if( KSqlErrNotDb <= errCode && errCode <= KSqlErrGeneral )
   167     if( KSqlErrNotDb <= errCode && errCode <= KSqlErrGeneral )
   163         {
   168         {
   164         //problem in loading one of plugins, probably data base is corrupted
   169         //problem in loading one of plugins, probably data base is corrupted
   165         //lets load it from ROM and try again
   170         //lets load it from ROM and try again
   166         delete iSrvManager;
   171         delete iSrvManager;
   167         iSrvManager = NULL;
   172         iSrvManager = NULL;
   168         iStorageProxy->LoadDataBaseFromRomL();
   173         iStorageProxy->LoadDataBaseFromRomL();
   169         iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
   174         iSrvManager = CCaSrvManager::NewL( *iStorageProxy,
   170         }
   175             &iSoftwareRegistry, iSrvEngUtils );
       
   176         }
       
   177     iBackupNotifier = CCaBackupNotifier::NewL( iStorageProxy );
   171     }
   178     }
   172 
   179 
   173 // ---------------------------------------------------------
   180 // ---------------------------------------------------------
   174 //
   181 //
   175 // ---------------------------------------------------------
   182 // ---------------------------------------------------------