39 : |
39 : |
40 CMsvOperation( |
40 CMsvOperation( |
41 aMsvSession, |
41 aMsvSession, |
42 CActive::EPriorityStandard, |
42 CActive::EPriorityStandard, |
43 aObserverRequestStatus), |
43 aObserverRequestStatus), |
|
44 iOperationObserver(NULL), |
|
45 iFSRequestId(KErrNotFound), |
44 iState( ESetFlags ) // <qmail> |
46 iState( ESetFlags ) // <qmail> |
45 //</qmail> iBlank removed |
47 //</qmail> iBlank removed |
|
48 { |
|
49 FUNC_LOG; |
|
50 CActiveScheduler::Add(this); |
|
51 } |
|
52 //</qmail> |
|
53 |
|
54 // ---------------------------------------------------------------------------- |
|
55 // CIpsPlgDeleteOperation::CIpsPlgDeleteOperation |
|
56 // ---------------------------------------------------------------------------- |
|
57 // |
|
58 //<qmail> |
|
59 CIpsPlgDeleteOperation::CIpsPlgDeleteOperation( |
|
60 CMsvSession& aMsvSession, |
|
61 TRequestStatus& aObserverRequestStatus, |
|
62 MFSMailRequestObserver& aOperationObserver, |
|
63 const TInt aRequestId) |
|
64 : |
|
65 CMsvOperation( |
|
66 aMsvSession, |
|
67 CActive::EPriorityStandard, |
|
68 aObserverRequestStatus), |
|
69 iOperationObserver(&aOperationObserver), |
|
70 iFSRequestId(aRequestId), |
|
71 iState( ESetFlags ) |
46 { |
72 { |
47 FUNC_LOG; |
73 FUNC_LOG; |
48 CActiveScheduler::Add(this); |
74 CActiveScheduler::Add(this); |
49 } |
75 } |
50 //</qmail> |
76 //</qmail> |
113 //</qmail> |
139 //</qmail> |
114 CleanupStack::Pop( self ); |
140 CleanupStack::Pop( self ); |
115 return self; |
141 return self; |
116 } |
142 } |
117 |
143 |
|
144 // <qmail> |
|
145 // ---------------------------------------------------------------------------- |
|
146 // CIpsPlgDeleteOperation::NewL |
|
147 // ---------------------------------------------------------------------------- |
|
148 // |
|
149 CIpsPlgDeleteOperation* CIpsPlgDeleteOperation::NewL( |
|
150 CMsvSession& aMsvSession, |
|
151 TRequestStatus& aObserverRequestStatus, |
|
152 CMsvEntrySelection* aEntriesToDelete, |
|
153 MFSMailRequestObserver& aOperationObserver, |
|
154 const TInt aRequestId) |
|
155 { |
|
156 FUNC_LOG; |
|
157 CIpsPlgDeleteOperation* self=new (ELeave) CIpsPlgDeleteOperation( |
|
158 aMsvSession, aObserverRequestStatus, aOperationObserver, aRequestId ); |
|
159 CleanupStack::PushL(self); |
|
160 self->ConstructL( aEntriesToDelete ); |
|
161 CleanupStack::Pop( self ); |
|
162 return self; |
|
163 } |
|
164 // </qmail> |
|
165 |
118 // ---------------------------------------------------------------------------- |
166 // ---------------------------------------------------------------------------- |
119 // CIpsPlgDeleteOperation::~CIpsPlgDeleteOperation |
167 // CIpsPlgDeleteOperation::~CIpsPlgDeleteOperation |
120 // ---------------------------------------------------------------------------- |
168 // ---------------------------------------------------------------------------- |
121 // |
169 // |
122 CIpsPlgDeleteOperation::~CIpsPlgDeleteOperation() |
170 CIpsPlgDeleteOperation::~CIpsPlgDeleteOperation() |
159 FUNC_LOG; |
207 FUNC_LOG; |
160 // Make first a check, that nothing has failed |
208 // Make first a check, that nothing has failed |
161 if ( iStatus.Int() != KErrNone ) |
209 if ( iStatus.Int() != KErrNone ) |
162 { |
210 { |
163 // something failed, just complete |
211 // something failed, just complete |
|
212 SignalFSObserver(iStatus.Int()); |
164 TRequestStatus* status = &iObserverRequestStatus; |
213 TRequestStatus* status = &iObserverRequestStatus; |
165 User::RequestComplete(status, iStatus.Int()); |
214 User::RequestComplete(status, iStatus.Int()); |
166 return; |
215 return; |
167 } |
216 } |
168 |
217 |
175 |
224 |
176 TRAPD( err, ret = SetNextLocallyDeletedFlagL() ); |
225 TRAPD( err, ret = SetNextLocallyDeletedFlagL() ); |
177 |
226 |
178 if ( err != KErrNone ) |
227 if ( err != KErrNone ) |
179 { |
228 { |
|
229 SignalFSObserver(err); |
180 TRequestStatus* status = &iObserverRequestStatus; |
230 TRequestStatus* status = &iObserverRequestStatus; |
181 User::RequestComplete(status, iStatus.Int()); |
231 User::RequestComplete(status, iStatus.Int()); |
182 } |
232 } |
183 else if ( ret ) |
233 else if ( ret ) |
184 { |
234 { |
196 // local delete completed, start deleting from server |
246 // local delete completed, start deleting from server |
197 StartDeleteFromServer(); |
247 StartDeleteFromServer(); |
198 } |
248 } |
199 else |
249 else |
200 { |
250 { |
|
251 // Inform observer |
|
252 SignalFSObserver(iStatus.Int()); |
201 // nothing left to process, so complete the observer |
253 // nothing left to process, so complete the observer |
202 TRequestStatus* status = &iObserverRequestStatus; |
254 TRequestStatus* status = &iObserverRequestStatus; |
203 User::RequestComplete(status, iStatus.Int()); |
255 User::RequestComplete(status, iStatus.Int()); |
204 } |
256 } |
205 // </qmail> |
257 // </qmail> |
242 TRAPD( err, MakeNextDeleteLocallyL() ); |
294 TRAPD( err, MakeNextDeleteLocallyL() ); |
243 SetActive(); |
295 SetActive(); |
244 // if error then complete this pass with the error code |
296 // if error then complete this pass with the error code |
245 if ( err ) |
297 if ( err ) |
246 { |
298 { |
|
299 SignalFSObserver(err); |
247 TRequestStatus* status = &iStatus; |
300 TRequestStatus* status = &iStatus; |
248 User::RequestComplete(status, err); |
301 User::RequestComplete(status, err); |
249 } |
302 } |
250 } |
303 } |
251 |
304 |
333 ret = ETrue; |
387 ret = ETrue; |
334 } |
388 } |
335 |
389 |
336 return ret; |
390 return ret; |
337 } |
391 } |
338 // </qmail> |
392 // </qmail> |
|
393 |
|
394 //<qmail> |
|
395 // ---------------------------------------------------------------------------- |
|
396 // CIpsPlgDeleteOperation::SignalFSObserver |
|
397 // ---------------------------------------------------------------------------- |
|
398 // |
|
399 void CIpsPlgDeleteOperation::SignalFSObserver(TInt aStatus) |
|
400 { |
|
401 if (iOperationObserver) |
|
402 { |
|
403 iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete; |
|
404 iFSProgress.iError = aStatus; |
|
405 iFSProgress.iParam = NULL; |
|
406 |
|
407 TRAP_IGNORE( iOperationObserver->RequestResponseL( iFSProgress, iFSRequestId ) ); |
|
408 } |
|
409 } |
|
410 // </qmail> |
339 |
411 |
340 // End of File |
412 // End of File |
341 |
413 |
342 |
414 |