contentstorage/srvsrc/casrv.cpp
changeset 86 e492551a0d54
parent 85 7feec50967db
child 87 9d806967057c
equal deleted inserted replaced
85:7feec50967db 86:e492551a0d54
    13  *
    13  *
    14  * Description:  ?Description
    14  * Description:  ?Description
    15  *
    15  *
    16  */
    16  */
    17 // INCLUDE FILES
    17 // INCLUDE FILES
       
    18 #include <sqldb.h>
    18 #include <eikenv.h>
    19 #include <eikenv.h>
    19 #include <eikappui.h>
    20 #include <eikappui.h>
    20 #include "casrv.h"
    21 #include "casrv.h"
    21 #include "casrvdef.h"
    22 #include "casrvdef.h"
    22 #include "casrvsession.h"
    23 #include "casrvsession.h"
    54     }
    55     }
    55 
    56 
    56 // ==================== GLOBAL FUNCTIONS ====================
    57 // ==================== GLOBAL FUNCTIONS ====================
    57 
    58 
    58 // ---------------------------------------------------------
    59 // ---------------------------------------------------------
    59 // 
    60 //
    60 // ---------------------------------------------------------
    61 // ---------------------------------------------------------
    61 //
    62 //
    62 EXPORT_C TInt RunCaServer()
    63 EXPORT_C TInt RunCaServer()
    63     {
    64     {
    64     __UHEAP_MARK;
    65     __UHEAP_MARK;
   105     }
   106     }
   106 
   107 
   107 // ==================== MEMBER FUNCTIONS ====================
   108 // ==================== MEMBER FUNCTIONS ====================
   108 
   109 
   109 // ---------------------------------------------------------
   110 // ---------------------------------------------------------
   110 // 
   111 //
   111 // ---------------------------------------------------------
   112 // ---------------------------------------------------------
   112 //
   113 //
   113 CCaSrv* CCaSrv::NewL()
   114 CCaSrv* CCaSrv::NewL()
   114     {
   115     {
   115     CCaSrv* srv = new ( ELeave ) CCaSrv();
   116     CCaSrv* srv = new ( ELeave ) CCaSrv();
   118     CleanupStack::Pop( srv );
   119     CleanupStack::Pop( srv );
   119     return srv;
   120     return srv;
   120     }
   121     }
   121 
   122 
   122 // ---------------------------------------------------------
   123 // ---------------------------------------------------------
   123 // 
   124 //
   124 // ---------------------------------------------------------
   125 // ---------------------------------------------------------
   125 //
   126 //
   126 CCaSrv::~CCaSrv()
   127 CCaSrv::~CCaSrv()
   127     {
   128     {
   128     // Cancel requests and delete all sessions first.
   129     // Cancel requests and delete all sessions first.
   140     delete iStorageProxy;
   141     delete iStorageProxy;
   141     delete iExitTimer;
   142     delete iExitTimer;
   142     }
   143     }
   143 
   144 
   144 // ---------------------------------------------------------
   145 // ---------------------------------------------------------
   145 // 
   146 //
   146 // ---------------------------------------------------------
   147 // ---------------------------------------------------------
   147 //
   148 //
   148 CCaStorageProxy* CCaSrv::GetStorageProxy()
   149 CCaStorageProxy* CCaSrv::GetStorageProxy()
   149     {
   150     {
   150     return iStorageProxy;
   151     return iStorageProxy;
   151     }
   152     }
   152 
   153 
   153 // ---------------------------------------------------------
   154 // ---------------------------------------------------------
   154 // 
   155 //
   155 // ---------------------------------------------------------
   156 // ---------------------------------------------------------
   156 //
   157 //
   157 CCaSrv::CCaSrv() :
   158 CCaSrv::CCaSrv() :
   158     CServer2( EPriorityNormal, CServer2::TServerType( EIpcSession_Sharable ) )
   159     CServer2( EPriorityNormal, CServer2::TServerType( EIpcSession_Sharable ) )
   159     {
   160     {
   160     }
   161     }
   161 
   162 
   162 // ---------------------------------------------------------
   163 // ---------------------------------------------------------
   163 // 
   164 //
   164 // ---------------------------------------------------------
   165 // ---------------------------------------------------------
   165 //
   166 //
   166 void CCaSrv::ConstructL()
   167 void CCaSrv::ConstructL()
   167     {
   168     {
   168     iSessionCount = 0;
   169     iSessionCount = 0;
   169     iExitTimer = CTimeout::NewL( CActive::EPriorityStandard, TCallBack(
   170     iExitTimer = CTimeout::NewL( CActive::EPriorityStandard, TCallBack(
   170             StopScheduler, NULL ) );
   171             StopScheduler, NULL ) );
   171     iStorageProxy = CCaStorageProxy::NewL();
   172     iStorageProxy = CCaStorageProxy::NewL();
   172     iSrvEngUtils = CCaSrvEngUtils::NewL();
   173     iSrvEngUtils = CCaSrvEngUtils::NewL();
   173     iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
   174     TRAPD( err, iSrvManager = CCaSrvManager::NewL(
   174     }
   175             *iStorageProxy, iSrvEngUtils ) );
   175 
   176     if( KSqlErrNotDb <= err && err <= KSqlErrGeneral )
   176 // ---------------------------------------------------------
   177         {
   177 // 
   178         //problem in loading one of plugins, probably data base is corrupted
       
   179         //lets load it from ROM and try again
       
   180         iStorageProxy->LoadDataBaseFromRomL();
       
   181         iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
       
   182         }
       
   183     }
       
   184 
       
   185 // ---------------------------------------------------------
       
   186 //
   178 // ---------------------------------------------------------
   187 // ---------------------------------------------------------
   179 //
   188 //
   180 CSession2* CCaSrv::NewSessionL( const TVersion& aVersion,
   189 CSession2* CCaSrv::NewSessionL( const TVersion& aVersion,
   181         const RMessage2& /*aMessage*/) const
   190         const RMessage2& /*aMessage*/) const
   182     {
   191     {
   190     iExitTimer->Cancel(); // We have a client, cancel exit (if pending).
   199     iExitTimer->Cancel(); // We have a client, cancel exit (if pending).
   191     return session;
   200     return session;
   192     }
   201     }
   193 
   202 
   194 // ---------------------------------------------------------
   203 // ---------------------------------------------------------
   195 // 
   204 //
   196 // ---------------------------------------------------------
   205 // ---------------------------------------------------------
   197 //
   206 //
   198 void CCaSrv::IncreaseSessionCount()
   207 void CCaSrv::IncreaseSessionCount()
   199     {
   208     {
   200     iSessionCount++;
   209     iSessionCount++;
   201     }
   210     }
   202 
   211 
   203 // ---------------------------------------------------------
   212 // ---------------------------------------------------------
   204 // 
   213 //
   205 // ---------------------------------------------------------
   214 // ---------------------------------------------------------
   206 //
   215 //
   207 void CCaSrv::DecreaseSessionCount()
   216 void CCaSrv::DecreaseSessionCount()
   208     {
   217     {
   209     iSessionCount--;
   218     iSessionCount--;