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. |
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 // --------------------------------------------------------- |