28 |
28 |
29 // ---------------------------------------------------------------------------- |
29 // ---------------------------------------------------------------------------- |
30 // CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation |
30 // CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation |
31 // ---------------------------------------------------------------------------- |
31 // ---------------------------------------------------------------------------- |
32 // |
32 // |
|
33 // <qmail> priority parameter has been removed |
33 CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation( |
34 CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation( |
34 CIpsPlgSmtpService* aSmtpService, |
35 CIpsPlgSmtpService* aSmtpService, |
35 CMsvSession& aMsvSession, |
36 CMsvSession& aMsvSession, |
36 TRequestStatus& aObserverRequestStatus, |
37 TRequestStatus& aObserverRequestStatus, |
37 TMsvId aSmtpServiceId, |
38 TMsvId aSmtpServiceId, |
38 TMsvPartList aPartList, |
39 TMsvPartList aPartList, |
39 TMsvId aMailBoxId, |
40 TFSMailMsgId aMailBoxId, |
40 MFSMailRequestObserver& aOperationObserver, |
41 MFSMailRequestObserver& aOperationObserver, |
41 const TInt aRequestId ) |
42 TInt aRequestId ) |
42 : |
43 : |
43 CMsvOperation( |
44 CIpsPlgBaseOperation( |
44 aMsvSession, |
45 aMsvSession, |
45 CActive::EPriorityStandard, |
46 aObserverRequestStatus, |
46 aObserverRequestStatus), |
47 aRequestId, |
|
48 aMailBoxId), |
47 iSmtpService(aSmtpService), |
49 iSmtpService(aSmtpService), |
48 iSmtpServiceId(aSmtpServiceId), |
50 iSmtpServiceId(aSmtpServiceId), |
49 iPartList(aPartList), |
51 iPartList(aPartList), |
50 iBlank( KNullDesC8 ), |
52 iOperationObserver(aOperationObserver) |
51 iMailBoxId(aMailBoxId), |
|
52 iOperationObserver(aOperationObserver), |
|
53 iRequestId(aRequestId) |
|
54 { |
53 { |
55 FUNC_LOG; |
54 FUNC_LOG; |
56 CActiveScheduler::Add( this ); |
55 CActiveScheduler::Add( this ); |
57 } |
56 } |
58 |
|
59 |
57 |
60 // ---------------------------------------------------------------------------- |
58 // ---------------------------------------------------------------------------- |
61 // CIpsPlgCreateMessageOperation::ConstructL |
59 // CIpsPlgCreateMessageOperation::ConstructL |
62 // ---------------------------------------------------------------------------- |
60 // ---------------------------------------------------------------------------- |
63 // |
61 // |
76 CIpsPlgSmtpService* aSmtpService, |
74 CIpsPlgSmtpService* aSmtpService, |
77 CMsvSession& aMsvSession, |
75 CMsvSession& aMsvSession, |
78 TRequestStatus& aObserverRequestStatus, |
76 TRequestStatus& aObserverRequestStatus, |
79 TMsvId aSmtpServiceId, |
77 TMsvId aSmtpServiceId, |
80 TMsvPartList aPartList, |
78 TMsvPartList aPartList, |
81 TMsvId aMailBoxId, |
79 TFSMailMsgId aMailBoxId, |
82 MFSMailRequestObserver& aOperationObserver, |
80 MFSMailRequestObserver& aOperationObserver, |
83 const TInt aRequestId ) |
81 TInt aRequestId ) |
84 { |
82 { |
85 FUNC_LOG; |
83 FUNC_LOG; |
86 CIpsPlgCreateMessageOperation* self = |
84 CIpsPlgCreateMessageOperation* self = |
87 new (ELeave) CIpsPlgCreateMessageOperation( |
85 new (ELeave) CIpsPlgCreateMessageOperation( |
88 aSmtpService, aMsvSession, aObserverRequestStatus, aSmtpServiceId, |
86 aSmtpService, aMsvSession, aObserverRequestStatus, aSmtpServiceId, |
141 TRAPD( err, msgId = GetIdFromProgressL( iOperation->FinalProgress() ) ); |
139 TRAPD( err, msgId = GetIdFromProgressL( iOperation->FinalProgress() ) ); |
142 |
140 |
143 if( err == KErrNone ) |
141 if( err == KErrNone ) |
144 { |
142 { |
145 newMessage = iSmtpService->CreateFSMessageAndSetFlagsL( |
143 newMessage = iSmtpService->CreateFSMessageAndSetFlagsL( |
146 msgId, KErrNotFound, iMailBoxId ); |
144 msgId, KErrNotFound, iFSMailboxId.Id() ); |
147 } |
145 } |
148 |
146 |
149 // relay the created message (observer takes ownership) |
147 // relay the created message (observer takes ownership) |
150 SignalFSObserver( iStatus.Int(), newMessage ); |
148 SignalFSObserver( iStatus.Int(), newMessage ); |
151 } |
149 } |
200 // ---------------------------------------------------------------------------- |
198 // ---------------------------------------------------------------------------- |
201 // |
199 // |
202 void CIpsPlgCreateMessageOperation::SignalFSObserver( |
200 void CIpsPlgCreateMessageOperation::SignalFSObserver( |
203 TInt aStatus, CFSMailMessage* aMessage ) |
201 TInt aStatus, CFSMailMessage* aMessage ) |
204 { |
202 { |
205 TFSProgress result = |
|
206 { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone, aMessage }; |
|
207 |
|
208 if ( aStatus == KErrCancel ) |
203 if ( aStatus == KErrCancel ) |
209 { |
204 { |
210 result.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled; |
205 iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled; |
211 result.iError = KErrCancel; |
206 iFSProgress.iError = KErrCancel; |
|
207 iFSProgress.iParam = NULL; |
212 } |
208 } |
213 else |
209 else |
214 { |
210 { |
215 result.iProgressStatus = TFSProgress::EFSStatus_RequestComplete; |
211 iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete; |
216 result.iError = aStatus; |
212 iFSProgress.iError = aStatus; |
217 } |
213 iFSProgress.iParam = aMessage; |
218 |
214 } |
219 TRAP_IGNORE( iOperationObserver.RequestResponseL( result, iRequestId ) ); |
215 |
|
216 TRAP_IGNORE( iOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) ); |
220 } |
217 } |
221 |
218 |
222 // ---------------------------------------------------------------------------- |
219 // ---------------------------------------------------------------------------- |
223 // CIpsPlgCreateMessageOperation::ProgressL |
220 // CIpsPlgCreateMessageOperation::ProgressL |
224 // ---------------------------------------------------------------------------- |
221 // ---------------------------------------------------------------------------- |
234 { |
231 { |
235 return iOperation->ProgressL(); |
232 return iOperation->ProgressL(); |
236 } |
233 } |
237 } |
234 } |
238 |
235 |
239 return iBlank; |
236 return KNullDesC8; |
|
237 } |
|
238 |
|
239 // --------------------------------------------------------------------------- |
|
240 // CIpsPlgCreateMessageOperation::GetErrorProgressL |
|
241 // --------------------------------------------------------------------------- |
|
242 // |
|
243 const TDesC8& CIpsPlgCreateMessageOperation::GetErrorProgressL( TInt /*aError*/ ) |
|
244 { |
|
245 FUNC_LOG; |
|
246 |
|
247 return KNullDesC8; // error progress info not supported |
|
248 } |
|
249 |
|
250 // --------------------------------------------------------------------------- |
|
251 // CIpsPlgCreateMessageOperation::GetFSProgressL |
|
252 // --------------------------------------------------------------------------- |
|
253 // |
|
254 TFSProgress CIpsPlgCreateMessageOperation::GetFSProgressL() const |
|
255 { |
|
256 FUNC_LOG; |
|
257 |
|
258 return iFSProgress; |
240 } |
259 } |
241 |
260 |
242 // ---------------------------------------------------------------------------- |
261 // ---------------------------------------------------------------------------- |
243 // CIpsPlgCreateMessageOperation::StartMessageCreation |
262 // CIpsPlgCreateMessageOperation::StartMessageCreation |
244 // ---------------------------------------------------------------------------- |
263 // ---------------------------------------------------------------------------- |